在另一个char数组中找不到char数组的位置

时间:2015-12-02 19:20:20

标签: c arrays string

这是我的代码:

#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相同的方法。我应该在代码中更改什么?

2 个答案:

答案 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);"开始