2010-03-20 50 views

回答

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

""表示string
''表示char

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

char是一个characte r(实际上是int),所以如果你想比较字符串,改用strcmp

+0

”“实际上表示char *,但是你仍然是对的,否则。 – 2010-03-20 01:41:53

+0

..但是,如果字符串以空字符结尾,或者如果知道两个字符串的数组大小超过n-1长度,则只能使用strcmp(),您可以使用strncmp()。 – 2010-03-20 14:33:53

+0

@San:我无法在这里详细解释一切:) – 2010-03-20 14:38:03

0

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

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

你给的例子基本上是与此类似:

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

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

相关问题