最后三个没有过,求好心人指点一下
查看原帖
最后三个没有过,求好心人指点一下
866969
telankesi楼主2022/11/12 22:31
#include <stdio.h>
#include <ctype.h>
int main() {
	char word[10];
	gets(word);
	char passage[1000000];
	gets(passage);
	int len1 = strlen(word);
	int len2 = strlen(passage);
	for (int i = 0; i < len1; i++) {
		char a = word[i];
		word[i] = tolower(a);
	}
	for (int i = 0; i < len2; i++) {
		char a = passage[i];
		passage[i] = tolower(a);
	}
	
	int first=-1;//记录第一次出现的位置
	int num = 0;//出现次数
	for (int i = 0; i < len2; i++) {
		if (passage[i] == word[0]&&(passage[i-1]==' '||i==0)&&(passage[i+len1]==' '||i+len1==len2) ) {
			int flag = 1;
			for (int j = 1; j < len1; j++) {
				if (j + i >= len2) { flag = 0; break; }
				if (word[j] != passage[j + i]) {
					flag = 0; break;
				}
			}if (flag == 1) { num++; if (first == -1) { first = i; } }
		}
	}
	if (num != 0) {
		printf("%d %d",num,first);
	}
	else printf("-1");
	return 0;
}
2022/11/12 22:31
加载中...