如何在C程序中比较字符串

如何在C程序中比较字符串,c,if-statement,C,If Statement,我有一个关于如何比较if语句中的字符串的问题。我正在从Python迁移到C,比较字符串在Python中很容易,但是在C中我该如何做呢 我的计划是: printf("Enter your choice 1.add\n 2.sub\n 3.mul\n 4.div\n"); string choice = get_string(); if (choice == "add") { int c = calculate_add(a, b); printf("sum of %i and %i

我有一个关于如何比较
if
语句中的字符串的问题。我正在从Python迁移到C,比较字符串在Python中很容易,但是在C中我该如何做呢

我的计划是:

printf("Enter your choice 1.add\n 2.sub\n 3.mul\n 4.div\n");
string choice = get_string();

if (choice == "add")
{
    int c = calculate_add(a, b);
    printf("sum of %i and %i is %i\n", a, b, c);
}
当我运行此操作时,会出现以下错误:

calculate.c:19:16: error: result of comparison against a string literal is
  unspecified (use strncmp instead) [-Werror,-Wstring-compare]
if (choice == "add")
           ^  ~~~~~
它说使用
strncmp
来比较字符串,但是我该如何做呢?

简单地代替

if(choice == "add")
使用以下语法:

if(!strcmp(choice, "add"))
别忘了将包括在内,而不是

if(choice == "add")
使用以下语法:

if(!strcmp(choice, "add"))
不要忘记从
使用

这行字符串选择是否正确=get_string();?“但我不知道怎么做”-谷歌,研究和学习。网上有很多例子。你查过了吗?@lazy_coder ya这是正确的,因为我包括了cs50头文件:)@CoolGuy这是个好建议,但stack比google要好得多:)@pkarthicbz是的,但是对于这些初学者问题,使用google。你可以从那里得到很多例子。如果您阅读downvote按钮的工具提示,您将看到类似“Post未显示任何研究成果”的内容。人们将投反对票。这是为了保持问题的良好质量。如果你用谷歌搜索一下strcmp,你就可以更快地找到如何使用strcmp。只有在您的研究失败后才查阅堆栈溢出。这行字符串选择是否正确=get_string();?“但我不知道怎么做”-谷歌,研究和学习。网上有很多例子。你查过了吗?@lazy_coder ya这是正确的,因为我包括了cs50头文件:)@CoolGuy这是个好建议,但stack比google要好得多:)@pkarthicbz是的,但是对于这些初学者问题,使用google。你可以从那里得到很多例子。如果您阅读downvote按钮的工具提示,您将看到类似“Post未显示任何研究成果”的内容。人们将投反对票。这是为了保持问题的良好质量。如果你用谷歌搜索一下strcmp,你就可以更快地找到如何使用strcmp。只有在你的研究失败后才查阅堆栈溢出。没问题!很乐意帮忙:)没问题!很乐意帮忙:)