qq_32445653 2015-10-30 16:48 采纳率: 0%
浏览 1422

我的代码虽然写得很业余,但是没报错的情况下为什么连printf都执行不了。

要求从一个字符串里搜寻另一个字符出现的次数。下面是小白的代码。
#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后面那些代码我另外弄了个函数表示搜寻查找,我以为是调用函数原因,哪知道代码全扔进主函数里它还是不行。

暂时不需要其他的思路解决原题目,我只是想知道我这一段东西错在哪儿了。

  • 写回答

1条回答 默认 最新

  • ztenv 博客专家认证 2015-11-13 00:35
    关注

    char hah[120],haha[120];
    先初始化一下:memset(hah,0,120);
    memset(haha,0,120);

    评论

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机