C - 将字符串文字与字符数组进行比较

Iri*_*ina 6 c arrays string character

我是C的新手,对于如何通过字符数组使用字符串仍然有点困惑.

在我的C程序中,我接受来自用户的命令:

char command[20];
scanf("%s",command);
Run Code Online (Sandbox Code Playgroud)

当然,之后我想弄清楚他们输入了什么命令(类似于"if(command =="hello"),然后做一些事情).我知道这在C中是不可能的,因为我正在将字符串文字与字符数组进行比较,但是什么是一个好方法呢?我尝试过使用strcmp(命令,"hello")但仍然出错.

您可以提供的任何建议将非常感激.谢谢!

Jac*_*man 7

我已经写了我认为您要尝试做的事情的完整版本:

    #include <string.h>
    void main()
    {

       char command[20];
       scanf("%s",command);

       // command and "hello" can be less than, equal or greater than!
       // thus, strcmp return 3 possible values
       if (strcmp(command, "hello") == 0)
       {
          printf("\nThe user said hello!");
       }

    }
Run Code Online (Sandbox Code Playgroud)

有几个人对使用发表了评论scanf,它们是正确的,除了新程序员必须从某个地方开始学习这些东西之外,所以不要觉得不好,我们都在学习...

希望这可以帮助。


gra*_*tas 6

当字符串相同时,strcmp返回0.我有使用strcmp比较字符数组和字符串文字的代码,当它不工作时我很困惑.事实证明,当字符串相同时,我认为它会返回1是错误的!

也许你犯了同样的错误?

  • 实际上,做出假设是编写程序的不正确方法 - 应该阅读文档. (2认同)