Может кто-нибудь, пожалуйста, объясните мне, как правильно использовать функцию strcmp
? Я создаю крестики-нолики игру, и я получаю сообщение об ошибке:Правильное использование функции strcmp?
passing argument 1 of ‘strcmp’ makes pointer from integer without a cast
Я создал два указателя, которые действуют в качестве параметров для функции strcmp
. Один из них - вход, который игрок вводит, второй - выбор ходов, которые игрок имеет. Однако, когда я пытаюсь запустить код, я получаю ошибку выше. Ниже приведен фрагмент моего кода:
void mark_location(int userU, char str) {
char *moves[] = {"upperLeft", "up", "upperRight", "left", "center", "right", "lowerLeft", "down", "lowerRight"};
if (strcmp(str, moves[0]) == 0)
board[0][0] = userU;
else if (strcmp(str, moves[1]) == 0)
board[0][1] = userU;
else if (strcmp(str, moves[2]) == 0)
board[0][2] = userU;
else if (strcmp(str, moves[3]) == 0)
board[1][0] = userU;
else if (strcmp(str, moves[4]) == 0)
board[1][1] = userU;
else if (strcmp(str, moves[5]) == 0)
board[1][2] = userU;
else if (strcmp(str, moves[6]) == 0)
board[2][0] = userU;
else if (strcmp(str, moves[7]) == 0)
board[2][1] = userU;
else if (strcmp(str, moves[8]) == 0)
board [2][2] = userU;
}
'mark_location (int userU, char * str)' – wildplasser
Ошибка связана с вашим типом. Однако есть некоторые проблемы с вашим выбором определения того, какой переход выбрать (например, что должно произойти, если выбран недействительный ход?).Как вы думаете, вы можете превратить строки в перечисление, а затем запустить оператор switch? –