|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <string.h>
- void printArray(char board[3][3])
- {
- int i,j;
- for (i=0; i<3; i++)
- {
- for (j=0; j<3; j++)
- {
- printf("%c ", board[i][j]);
- }
- printf("\n");
- }
- }
- int main()
- {
- char board_now[3][3] = {{' .',' .',' .'},{' .',' .',' .'},{' .',' .',' .'}};
- char board_past[3][3];
- int i,x,row,col;
- for (i=0;i<9;i++)
- {
- printf("input:");
- scanf("%i",&x);
- row = (x-1) / 3;
- col = (x-1) % 3;
- board_now[row][col] = 'X';
- strcpy(board_past, board_now);
- printArray(board_now);
- printArray(board_past);
- }
- }
复制代码
运行之后的结果是这样的(见下图)
你的问题出在 strcpy(board_past, board_now); 这一行代码上。在这行代码中,你试图将 board_now 的值复制到 board_past 中,但是 board_now 和 board_past 都是二维字符数组,而 strcpy 函数适用于字符串的复制,因此这会导致错误的结果。
要解决这个问题,你可以使用循环来逐个复制 board_now 到 board_past ,或者使用 memcpy 函数来实现复制。下面是使用 memcpy 函数的示例代码:
- memcpy(board_past, board_now, sizeof(board_now));
复制代码
这样就可以正确地将 board_now 的值复制到 board_past 中。
|
|