2015-10-26 5 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 == 'у')' – syntagma

+3

Чтобы exapand на то, что говорит @REACHUS, ' "J" 'синтаксис для строки тогда как '' j'' является синтаксисом для одного символа. –

+0

И ошибка запутанна, потому что 'char' и' int' совместимы, поэтому компилятору все равно, если вы используете символы или ints там. Для вашего здравомыслия, прочитайте 'char' для' int' в сообщении об ошибке. –

ответ

2

Один char определяется с '', так:

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

Спасибо всем :) –

2

Чтобы немного расширить на комментарии выше, 'c' и "c" имеют разные значения в C++. Первый - символьный литерал, а последний - строковый (char *) литерал.

Для полноты, вы хотите заменить "j" с 'j'

+0

Не 'char *' но 'char const [2]', который может быть легко преобразован в 'char const *, но никогда (безопасно) в' char * '. –