代码之家  ›  专栏  ›  技术社区  ›  chutsu

将特定数组元素与c中带有“if”的字符串进行比较?

  •  0
  • chutsu  · 技术社区  · 15 年前

    相当琐碎的问题。

    所以我试着这么做:

    if (array[0]=="some_string")
    

    哪里 array 是字符串列表

    array[0] = "some_string_1";
    array[1] = "some_string_2";
    array[2] = "some_string_3";
    

    但很明显它不起作用… 我该怎么办?

    2 回复  |  直到 12 年前
        1
  •  8
  •   N 1.1    15 年前
    if(array[0] == 'n')
    

    "" 象征 string
    '' 象征 char

    注: 'a' 是一个 烧焦 "a" 是一个 一串 如此 'a' != "a"

    烧焦 是单个字符(实际上是int),因此如果要比较字符串,请使用 strcmp 相反。

        2
  •  0
  •   San Jacinto    15 年前

    在您给出的示例中,将单个字符(数组[0])与编译后字符串(“some_string”)的地址进行比较。

    因为字符串文字被视为以空结尾的字符数组,并且使用==运算符与字符数组进行比较会比较数组的地址。

    您给出的示例与此基本相似:

    char* x = "some_string";
    char array[10];
    if(array[0] == x)
        ...
    

    从这个例子中可以看出,类型根本不匹配。如另一张海报所述,您可以使用[]运算符从数组开头方括号中的偏移量获取特定字符。