//这道题思路是借鉴别人的
#include<stdio.h>
#include<string.h>
int main(){
char a[11];
char b[1000000];
gets(a);
b[0]=' ';//将b这个数组开头和结尾设置空格。
gets(&b[1]);
b[strlen(b)]=' ';
int p=strlen(a),h=strlen(b);
int i,j,d=0,flag=0,place;
for(i=0;i<p;i++){//将a里的字符串进行大小写转换
if(a[i]>='A'&&a[i]<='Z'){
a[i]+=32;
}
}
for(i=0;i<h;i++){//将b里的字符串进行大小写转换
if(b[i]>='A'&&b[i]<='Z'){
b[i]+=32;
}
}
for(i=0;i<h;i++){
int count=0;
if(b[i]==' '&&b[i+p+1]==' '){//思路:从b数组里挑出与a数组的长度相同的单词
for(j=0;j<p;j++){
if(a[j]==b[j+i+1]){//积累:关于两个循环要同步进行的写法
count++;
}else{
break;
}
}
}
if(count==p){//如果挑出的单词字母与a字符串的字母相等的数量一样,就可以认定
d++; //这个单词就是与a字符串相等 积累:可以通过数量的角度去想
if(flag==0){
place=i;//记录刚开始出现的单词的位置
flag++;
}
}
}
if(d==0){
printf("-1");
}
else{
printf("%d %d",d,place);
}
return 0;
}
版权声明:本文为m0_73866527原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。