检查 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]
), 你的程序可能会崩溃。
我正在尝试检查用户输入是否与 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]
), 你的程序可能会崩溃。