C:改变字符串中的字符

C: Change char in string

虽然这是一道基础题,但具体情况与一般情况不同。我有 char board[] = {"13572"} 表示板(数组的索引是板的行,int(表示为 char)是该行中的元素数。如果用户输入“3 3”表示他们想将索引 2 处的元素数更改为 2(或者正如用户所见,它将第 3 行中的元素数更改为 2,用户也认为索引从 1-4 为Y 和 1-7 代表 X),将板更改为 {“13272”}。我遇到一个问题,即输入可以将所选行中的值更改为“/”或“0”,而不是所需的值。任何建议不胜感激,相关功能如下:

此外,board 是一个全局变量。 将数组中的字符更改为整数(单个数字):

int bd2int (char board[], int index){
    char buff[2] = {board[index],'[=10=]'};
    return atoi(buff);
}

changes the board based on move (char move[3] in format "X Y"): 我相信问题就在这里,如果索引 2 被更改,将板作为字符串打印时,板将只打印到索引 1,表示在索引 2 处插入了 '\0'。

int update(char move[]){
   int x;
   int y;
   x = bd2int(move,0);
   y = bd2int(move,2);
   x--;
   board[y-1] = (char)x;
   totalElements=    bd2int(board,0)+bd2int(board,1)+bd2int(board,2)+bd2int(board,3);
   return 1;
}

感谢您的帮助,问题出在行 board[y-1] = (char)x; 我找到了一种更准确的将 int x 转换为 char x 的方法,解决了这里的问题: