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

时间:2016-03-07 13:22:22

标签: c++ multidimensional-array char strcmp atoi

我正在尝试检查用户输入是否与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,但只能用于单维数组。

我也尝试将char值转换为atoi的数字,但是我得到了一个错误,

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

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

2 个答案:

答案 0 :(得分:1)

如何:

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

答案 1 :(得分:0)

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

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

在你的情况下

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

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