相当微不足道的问题。比较一个特定的数组元素与C中的“if”字符串?
于是,我就这样做:
if (array[0]=="some_string")
其中array
是一个字符串
array[0] = "some_string_1";
array[1] = "some_string_2";
array[2] = "some_string_3";
,但显然这是行不通的列表... 我有什么做的?
相当微不足道的问题。比较一个特定的数组元素与C中的“if”字符串?
于是,我就这样做:
if (array[0]=="some_string")
其中array
是一个字符串
array[0] = "some_string_1";
array[1] = "some_string_2";
array[2] = "some_string_3";
,但显然这是行不通的列表... 我有什么做的?
if(array[0] == 'n')
""
表示string
''
表示char
注:'a'
是char
和"a"
是string
,所以'a' != "a"
char
是一个characte r(实际上是int),所以如果你想比较字符串,改用strcmp
。
”“实际上表示char *,但是你仍然是对的,否则。 – 2010-03-20 01:41:53
..但是,如果字符串以空字符结尾,或者如果知道两个字符串的数组大小超过n-1长度,则只能使用strcmp(),您可以使用strncmp()。 – 2010-03-20 14:33:53
@San:我无法在这里详细解释一切:) – 2010-03-20 14:38:03
在您给出的示例中,您正在比较单个字符(array [0])和编译字符串(“some_string”)的地址。
由于字符串文字被视为以空字符结尾的字符数组,并且使用==运算符与字符数组进行比较来比较数组的地址。
你给的例子基本上是与此类似:
char* x = "some_string";
char array[10];
if(array[0] == x)
...
而且你可以从这个例子看到,类型根本不匹配。如另一张海报所述,您可以使用[]运算符从数组开头的括号内的偏移量中获取特定字符。
什么是'array'? “ – GManNickG 2010-03-20 01:17:15