2016-04-05 1 views
0
vector<string> color; 
color.push_back("RBBG"); 
color.push_back("RBBBBG"); 
if (color [1] [2] == "B"){ 
    cout<<"it is blue"; 
} 

Это дает следующее сообщение об ошибке:Как сравнить символ из строки из векторной строки?

error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if (colors [i] [m] == "R")

PS: Код предоставляется только отрывок, который был отредактирован немного, чтобы избавиться от ненужных вещей на вопрос: D

Как я могу выполнить свою цель?

+2

'' B'' не '' B "'. – user657267

ответ

1

color - это вектор строк, и каждый индекс строки является символом, а не строкой.
Изменение состояния if в if (color [1] [2] == 'B')

3

color является вектором std::string.

color[1] является std::string.

color[1][1] является персонажем типа char.

"R" является строковым литералом типа const char *.

Обратите внимание на разное количество звезд в двух типах (0 против 1). Символы не являются строками, вы не можете сравнивать их с другими.

Возможно, вы захотите использовать символ символа вместо строкового литерала, например. 'R' (обратите внимание на одинарные кавычки).

Смежные вопросы