相當微不足道的問題。比較一個特定的數組元素與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