【问题标题】:Compare a specific array element to a string with "if" in C?将特定数组元素与C中带有“if”的字符串进行比较?
【发布时间】:2011-01-29 16:51:04
【问题描述】:

相当琐碎的问题。

所以我尝试这样做:

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

array 是一个字符串列表

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

但显然它不起作用...... 我该怎么办?

【问题讨论】:

    标签: c arrays char if-statement


    【解决方案1】:
    if(array[0] == 'n')
    

    "" 表示string
    '' 表示char

    注意:'a'char"a"string,所以 'a' != "a"

    char 是单个字符(实际上是 int),因此如果要比较字符串,请改用 strcmp

    【讨论】:

    • " " 实际上表示 char*,但否则你仍然是对的。
    • ..但你只能使用 strcmp() 如果字符串是空终止的,或者如果你知道两个字符串的数组大小超过长度 n-1,你可以使用 strncmp() .
    • @San: 我不能在这里详细解释一切:)
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 2018-10-04
      • 2012-11-22
      • 2023-03-18
      相关资源
      最近更新 更多