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

时间:2010-03-20 01:06:26

标签: c arrays char if-statement

相当琐碎的问题。

所以我试着这样做:

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

其中array是字符串列表

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

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

2 个答案:

答案 0 :(得分:8)

if(array[0] == 'n')
  

""表示string
  ''表示char

注意:'a'char"a"string,因此'a' != "a"

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

答案 1 :(得分:0)

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

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

您提供的示例与此基本相似:

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

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