Как проверить наличие определенного символа в строке? - PullRequest
0 голосов
/ 03 октября 2019

Отказ от ответственности: я новичок в c ++ и программировании в целом.

У меня есть функция, которая принимает строковый параметр длиной всего 2 целых числа. Я хочу использовать первый и второй int параметра для индексации в chessBoard [8] [8], чтобы выбрать пробел на доске. Каждый индекс (пробел) в двумерном массиве (доске) содержит символ, представляющий тип фигуры.

Предполагается, что функция определяет тип фигуры, а затем вызывает функцию перемещения для конкретной фигуры.

Вот часть кода, примененного к королевской пьесе.

int movePiece(string startPos) {

string pieceType = chessBoard[startPos[0]][startPos[1]];

cout << chessBoard[startPos[0]][startPos[1]] <<endl;

if (tolower(pieceType) == 'k') {
    kingMove(startPos);
}

Строка 5 - это тест, чтобы увидеть, что именно возвращается. По какой-то причине он печатает «» (пробел), что означает, что он сравнивает «» с «k» или любым другим символом, представляющим типы фрагментов. Тем не менее, я могу поставить 'cout >> chessBoard [0] [3]' и заставить его напечатать 'k' (фигура в этом месте на доске). Пробел также возвращается для любого пробела на доске, а не только для [0] [3].

'startPos' - это строка, поэтому я должен иметь возможность использовать startPos [0] и startPos [1]со строковым потоком для доступа к целым числам, верно? Что я делаю не так?

...