这是我的代码:
#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;
}
然而,当我运行它,并给它这个输入:
Ana仅仅是
这是第二个字符串:
是
输出如下:
-2752172
我使用与给定in this question相同的方法。我应该在代码中更改什么?
答案 0 :(得分:2)
在字符串"are\n"
中找不到文字"Ana are mere\n"
。
因此strstr
会返回NULL
。
要获得预期的输出,您需要确保没有在搜索字符串上获得最终的回车(\n
)。
答案 1 :(得分:1)
这两个字符串都包含一个新行,例如"Ana are mere\n"
和"are\n"
,但字符串"are\n"
中没有"Ana are mere\n"
这就是为什么我们可以删除新行在"are\n"
"cuv[strlen(cuv)-1] = '\0';"
从"fgets(cuv, 10, stdin);"
开始