2015-10-26 81 views
-2

爲什麼不能比較兩個char? 我的代碼首先聲明一個char,然後用戶給它一個值 - >「j」或「t」。 然後將下面的代碼如下所示:比較C++中的兩個字符

if (chAuswahl == "j") 
{ 
} 

我的問題是,==是紅色下劃線。這是錯誤代碼:

Can't convert from const char* to int 
'int' is different from const char[2] of performed in terms of the number dereferencings 
Operand types are incompatible ("char" and "const char *"). 

謝謝大家的幫助!

+3

'如果(chAuswahl == 'J')' – syntagma

+3

要在什麼@REACHUS說exapand,' 「J」'是一個字符串的語法而'j''是單個字符的語法。 –

+0

這個錯誤令人困惑,因爲'char'和'int'是兼容的,所以如果你在那裏使用字符或整數,編譯器並不在乎。爲了您的理智,請在錯誤消息中讀取'int'的'char'。 –

回答

2

單個char''定義的,因此:

if (chAuswahl == 'j') 
{ 
} 
+0

謝謝大家:) –

2

要展開在註釋上面一點,'c'"c"在C不同的含義++。前者是字符文字,後者是字符串(char *)文字。

爲了完整起見,你會想,以取代"j"'j'

+0

不是'char *',而是'char const [2]',它可以很容易地轉換成'char const *',但從來沒有(安全地)轉換成char *'。 –