检查 CHAR 多维数组 CPP 中的值

checking values in a char multidimensional array, cpp

本文关键字:CPP 数组 CHAR 检查      更新时间:2023-10-16

我正在尝试检查用户输入是否与字符多维数组中的特定值匹配。但我似乎想不出一种方法来做到这一点。用户输入将是 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] == '')

在您的情况下

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

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