如何比较“if”语句中的字符串?

时间:2011-11-22 05:41:22

标签: c string

我想测试并查看“char”类型的变量是否可以与常规字符串(如“cheese”)进行比较,以进行比较,如:

#include <stdio.h>

int main()
{
    char favoriteDairyProduct[30];

    scanf("%s",favoriteDairyProduct);

    if(favoriteDairyProduct == "cheese")
    {
        printf("You like cheese too!");
    }
    else
    {
        printf("I like cheese more.");
    }

    return 0;
}

(我真正想做的事情比这要长得多,但这是我坚持的主要部分。) 那么如何比较C中的两个字符串?

5 个答案:

答案 0 :(得分:24)

您正在寻找strcmp中的strncmpstring.h功能。

由于字符串只是数组,因此您需要比较每个字符,因此该函数将为您执行此操作:

if (strcmp(favoriteDairyProduct, "cheese") == 0)
{
    printf("You like cheese too!");
}
else
{
    printf("I like cheese more.");
}

进一步阅读:strcmp at cplusplus.com

答案 1 :(得分:4)

查看函数strcmpstrncmp

答案 2 :(得分:4)

if(strcmp(aString, bString) == 0){
    //strings are the same
}

一帆风顺

答案 3 :(得分:3)

您无法使用==运算符比较字符数组。您必须使用字符串比较功能。看看Strings (c-faq)

  

标准库的strcmp函数比较两个字符串,如果它们相同则返回0,如果第一个字符串按字母顺序“小于”第二个字符串则返回负数,如果第一个字符串则返回正数是“更大。”

答案 4 :(得分:1)

if(!strcmp(favoriteDairyProduct, "cheese"))
{
    printf("You like cheese too!");
}
else
{
    printf("I like cheese more.");
}