c - 在 C 中将变量与字符串进行比较的正确格式是什么?

标签 c string variables comparison

我正在尝试用 C 语言编写一个函数,该函数将查询用户的输入,然后根据该输入执行一组特定的任务。我想出的代码如下所示:

int exit = 1;

int main(void)
{
    while (exit)
    {
        action();
    }
}

void action()
{
    char x[31];
    fgets(x, 30, stdin);
    chomp(x);

    if (x == "stop")
    {
        exit = 0;
    }
}

问题是,每当我在控制台中输入“stop”时,它都不会注册,并且循环会继续迫使我按 CTRL-C。那么对比有什么问题呢?我输入它后打印 x 并且打印出“stop”,所以我不明白为什么 if 语句不起作用......

顺便说一下,chomp() 函数是我自己设计的,它只是删除了第一个/n 并用/0 替换它。

最佳答案

您将需要使用字符串比较函数,strcmp(),或者,如果您只关心前 n 个字符,则使用 strncmp()。引用C library reference关于如何使用它。

关于c - 在 C 中将变量与字符串进行比较的正确格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726302/

相关文章:

c - 如何从 double 转换为 signed short?

c - "Predefined Function"到底是什么?

python - 如何保持字符串长度相同?

pointers - 当我将变量传递给 golang 中的私有(private)方法时,它会创建一个新实例吗?

python - 在 IPython 中移除或删除变量

R数据.表: how to use R variables that contain column names?

c - Valgrind 中抑制泄漏意味着什么?

c - Serial.print 只打印一次 Arduino

java - 将用户输入的数字转换为单词

vb.net - 大括号中的数字有什么作用,例如 "{0}"是什么意思?