Как проверить 1-й элемент массива строк 1-й символ с помощью? - PullRequest
1 голос
/ 21 февраля 2012

Итак, я получил массив строк, скажем, a[i][b];

поэтому код выглядит примерно так -

for(int i = 0; i < 3; i++) {
  for(int n = 0; b < 3; b++) {
    if(a[i][b] == "s") {
     cout << a[i][b] << endl;
    }
  }
}

массив существует, и я могу проверить его, если я просто покажу на консоли a[i][b] без оператора if, но с оператором if он выдаст мне эту ошибку -

ошибка: ISO C ++ запрещает сравнение между указателем и целым числом

Есть ли способ это исправить?

Ответы [ 3 ]

5 голосов
/ 21 февраля 2012

"s" является строковым литералом, то есть массивом символов, поэтому распадается на указатель. Для сравнения с символом используйте одинарные кавычки:

if (a[i][b]=='s')
3 голосов
/ 21 февраля 2012

"s" является строковым литералом C, если вы хотите сравнить с использованием символа 's'.

1 голос
/ 21 февраля 2012

положите s в одинарные кавычки, как это 's'
"s" - это текст, а в C ++ нет класса String (нативный).Таким образом, "s" на самом деле является указателем на последовательность символов, а a[i][b] - просто одним символом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...