要求从一个字符串里搜寻另一个字符出现的次数。下面是小白的代码。
#include
int main(int argc, const char * argv[]) {
char hah[120],haha[120];
int i,j,num=0;
printf("sting1 is ");
gets(hah);
printf("%s\n",hah);
printf("string2 is ");
gets(haha);
printf("%s\n",haha);
printf("ooocoo"); //你到底去哪儿了呢?
for (i=0; hah[i]!='\0';) {
for (j=0; haha[j]!='\0'; ) {
if (haha[j]==hah[i]) {
i++;
j++;
}
}num++;
}
printf("\n%d",num);
return 0;
}
第一次运行结果貌似还是对的。
warning: this program uses gets(), which is unsafe.
sting1 is rr
rr
string2 is r
r
ooocoo
2Program ended with exit code: 0
第二次运行结果就这样了:
warning: this program uses gets(), which is unsafe.
sting1 is wakakaka,wsmlaoshi wakakakaka,jiushi buduine
wakakaka,wsmlaoshi wakakakaka,jiushi buduine
string2 is ka
ka
就到输出第二个字符串为止,就连oocooo都不给我输出,这不是摆明欺负菜鸟么,求大神解释。
本来oocooo后面那些代码我另外弄了个函数表示搜寻查找,我以为是调用函数原因,哪知道代码全扔进主函数里它还是不行。
暂时不需要其他的思路解决原题目,我只是想知道我这一段东西错在哪儿了。