相当琐碎的问题。
所以我试着这样做:
if (array[0]=="some_string")
其中array
是字符串列表
array[0] = "some_string_1";
array[1] = "some_string_2";
array[2] = "some_string_3";
但很明显它不起作用...... 我该怎么办?
答案 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)
...
从这个例子可以看出,这些类型根本不匹配。正如另一张海报所述,您使用[]运算符从数组开头的括号中的偏移量中获取特定字符。