免责声明:我一般对c ++和编程都是陌生的。
我有一个函数,该函数接受仅2个整数长的字符串参数。我想使用参数的第一个和第二个int索引到chessBoard [8] [8]中以选择板上的一个空间。 2D数组(板)中的每个索引(空格)都包含一个代表样片类型的字符。
该功能应该确定样片类型,然后调用特定样片的移动功能。
这是应用于国王的代码的一部分。
int movePiece(string startPos) {
string pieceType = chessBoard[startPos[0]][startPos[1]];
cout << chessBoard[startPos[0]][startPos[1]] <<endl;
if (tolower(pieceType) == 'k') {
kingMove(startPos);
}
第5行是测试,以查看确切返回的内容。出于某种原因,它会打印一个“”(空格),这表示它正在将“”与“ k”或代表片断类型的任何其他字符进行比较。但是我可以放'cout >> chessBoard [0] [3]'并让它打印一个'k'(棋盘上那个空格上的棋子)。还会为板上的任何空间返回一个空间,而不仅仅是[0] [3]。
'startPos'是一个字符串,因此我应该能够将startPos [0]和startPos [1]与stringstream一起使用来访问整数,对吗?我在做什么错了?