为啥输出来的个数少一啊
查看原帖
为啥输出来的个数少一啊
1464923
Yangjingyu666楼主2024/10/20 11:12

#include <stdio.h>

#include <string.h>

int main(){

char str1[15];
char str2[1000006];
int i=0,cnt=0,num=0,m=0,p=0;
int c=-1;
fgets(str1,15,stdin);
fgets(str2,1000005,stdin);
int len1=strlen(str1);
int len2=strlen(str2);
for(;i<len1-1;i++){
	if(str1[i]>=65&&str1[i]<=90)
	str1[i]+=32;
}
for(;m<len2-1;m++){
	if(str2[m]>=65&&str2[m]<=90)
	str2[m]+=32;
}
for(m=0,i=0;m<len2-1;m++){
	if(str2[m]==str1[i]){
		for(i=1,m+=1;i<len1-1;i++,m++){
			if(str1[i]==str2[m])
			c=1;
		}
		if(str2[m]==32){
			num++;
			if(num==1)
			p=cnt;
		}
		else{
		c=-1;
		}
		m=m-len1+1;
	}
	if(str2[m]==32)
	cnt++;
}
if(c==1)
printf("%d %d\n",num,p);
if(c==-1)
printf("-1\n");
return 0;

}

2024/10/20 11:12
加载中...