我如何正确比较字符串?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

用户输入一个单词或字符,存储后,然后打印出来,直到用户重新输入,退出程序。我的代码如下所示:

#include <stdio.h>

int main()
{
    char input[40];
    char check[40];
    int i=0;
    printf("Hello!\nPlease enter a word or character:\n");
    gets(input);
    printf("I will now repeat this until you type it back to me.\n");

    while (check != input)
    {
        printf("%s\n", input);
        gets(check); 
    }

    printf("Good bye!");


    return 0;
}

问题在于,即使用户输入(check)与原始输入(input)匹配,我也不断获得输入字符串的打印。

提问于
用户回答回答于

你不能使用!=or的字符串==,你需要使用strcmp

while (strcmp(check,input) != 0)
用户回答回答于

gets是不安全的,应该被替换,使用fgets(input, sizeof(input), stdin)以便不会发生缓冲区溢出。

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问12 回答
  • 四无君

    0 粉丝0 提问3 回答
  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问2 回答
  • o o

    3 粉丝490 提问2 回答

扫码关注云+社区

领取腾讯云代金券