【发布时间】:2016-03-07 04:37:21
【问题描述】:
这是我的代码:
#include<stdio.h>
#include<string.h>
int main (){
char prop[100], cuv[10], poz[100];
fgets(prop, 100, stdin);
fgets(cuv, 10, stdin);
printf("%ld\n", strstr(prop, cuv) - prop);
puts(prop);
puts(cuv);
return 0;
}
但是,当我运行它并给它这个输入时:
安娜只是
这是第二个字符串:
是
输出如下:
-2752172
我使用了与in this question 相同的方法。我应该在代码中更改什么?
【问题讨论】:
-
把它放在调试器中,设置断点,然后单步执行。
-
检查
strstr()的返回值比盲目使用更能说明问题。 -
我使用调试来检查 strstr() 和减法的返回值。我不知道关于 fgets() 的事情 '\n',我为此感到羞愧,但现在我一定会记住这一点,感谢您的帮助!