2010-03-20 74 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) 
    ... 

而且你可以從這個例子看到,類型根本不匹配。如另一張海報所述,您可以使用[]運算符從數組開頭的括號內的偏移量中獲取特定字符。

相關問題