如果输入“test”,为什么这段特定的代码在strstr()上返回false?

char input[100];

int main()
{
    fgets(input, 100, stdin);
    printf("%s", input);

    if(strstr("test message", input))
    {
        printf("strstr true");

    }


}

我以为strstr在第一个参数中搜索了第二个参数的实例?当我用一些文本替换输入或直接为其分配输入时,它可以工作,但似乎不适用于fgets。

最佳答案

这是因为fgets存储换行符,因此当strstr进行比较时会失败。

从手册页:

关于c - strstr无法运作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7943032/

10-12 16:26