检查 char 多维数组中的值,cpp

checking values in a char multidimensional array, cpp

我正在尝试检查用户输入是否与 char 多维数组中的特定值匹配。但我似乎无法想出办法。用户输入将是 1-9 中的一个数字。我将遍历数组以找到匹配值。我的代码如下,

 char input;
 getline(cin,input);
 char gameBoard[3][3] = {{'1','2','3'},
                         {'4','5','6'},
                         {'7','8','9'}
                        };
for(int i=0; i<3; i++)
{
    for(int j=0; j<3; j++)
    {
        gameBoard[i][j];  //SOME CODE TO COMPARE THE VALUE TO USER INPUT
    }
} 

我尝试过使用 strcmp,但只能对一维数组执行此操作。

我也试过用atoi将char值转换成数字,但我得到了一个错误,

error: invalid conversion from 'char' to 'const char*' [-fpermissive]|

任何关于如何比较的建议将不胜感激。谢谢

怎么样:

if (gameBoard[i][j] == input) {... }

strcmp 期望以零结尾的字符串,而不是字符。如果需要比较以零结尾的字符串str是否是单个字符c,可以使用

(str[0] == c) && (str[1] == '[=10=]')

你的情况

if ((input[0] == gameBoard[i][j]) && (input[1] == '[=11=]')) { /* ... */ }

'\0'是字符串的零终止符。在 str[1] 之前检查 str[0] 很重要,因为 str 可能为空(即 str[0] == '[=18=]'),并且当读取超过字符串末尾时(例如来自 str[1]), 你的程序可能会崩溃。