#include<stdio.h>
int main() {
char s1[100];
char s2[100];
int res[100];
int count = 0;
gets(s1);
gets(s2);
int len1 = strlen(s1);
int len2 = strlen(s2);
int i;
//int j;
for ( i = 0; i < len1; ) {
for (int j = 0; j < len2; ) {
if (j == len2 - 1 && s1[i] == s2[j]) {
count++;
res[count - 1] = i-len2+1;
i++;
j++;
break;
}
else if (s1[i] == s2[j]) {
i++;
j++;
}
else if(s1[i]==s2[0]) {
break;
}// ththe
else {
i++;
break;
}
}
}
if (count == 0) {
printf("NO");
}
else {
printf("%d\n", count);
for (int k = 0; k < count; k++) {
printf("%d\t", res[k]);
}
}
}
题目:编写一个程序输入两个字符串 string1 和 string2,检查在 string1 中是否包含有
string2。如果有,则输出 string2 在 string1 中的起始位置;如果没有,则显示“NO”;如果 string2
在 string1 中多次出现,则输出在 string1 中出现的次数以及每次出现的起始位置,例如:
stringl=“the day the month the year”;
string2=“the”
输出结果应为:出现三次,起始位置分别是:0,8,18
又如:
stringl=“aaabacad”
string2=“a”
输出结果应为:出现五次,起始位置分别是 0,1,2,4,6