#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char check[11];
char str[1000001];
int f_num = 0;
int count = 0;
int i = 0;
int j = 0;
int p = 1;
gets(check);
gets(str);
int length_S, length_C;
length_C = strlen(check);
length_S = strlen(str);
for (i = 0; i < length_C; i++){
check[i] = tolower(check[i]);
}
for (i = 0; i < length_S; i++){
str[i] = tolower(str[i]);
}
for (i = 0; i < length_S; i++){
// 对每一个单词的判断 共三种情况:1、要么第一个字母在最开头且单词结尾为空格,
// 2、要么在末尾即单词开头字母的位置为b的长度减去a的长度且单词前一位为空格,
// 3、要么单词在中间他的左边和右边同时为空格。 同时默认次单词长度和要找的a单词长度相等,若不等,则肯定不是要找的单词。
if (i == 0 && str[i+length_C] == ' ' || i == length_S-length_C && str[length_S-length_C-1] == ' ' || str[i-1] == ' ' && str[i+length_C] == ' '){
for (j = 0; j < length_C; j++){
if (str[i+j] == check[j]){
p = 1;
} else {
p = 0;
break; //一定要break啊!!!不然下一次匹配成功了,p是1啦,就出现结果啦!!!
}
}
if (p){
count++;
if (count == 1){
f_num = i;
}
}
}
}
if (count == 0){
printf("-1");
} else {
printf("%d %d", count, f_num);
}
return 0;
}
标签:count,洛谷,NOIP2011,int,C语言,单词,length,str,check
From: https://blog.csdn.net/qq_74568860/article/details/140299144