gpt4 book ai didi

c++ - 将字符添加到 char*[] 时遇到问题

转载 作者:行者123 更新时间:2023-11-28 00:42:54 25 4
gpt4 key购买 nike

我正在尝试为类制作一个快速的 TicTacToe 游戏,但我为 X 和 O 创建的两个字符遇到了问题。我们必须使用一些代码来完成作业,所以我不能只一个标准数组。每次我将它们放入 char*[] 时,它们都会显示在它们之后创建的任何字符。

以下是我正在使用的部分代码。

char *spots[] = {"1","2","3","4","5","6","7","8","9"};
char player1 = 'X';
char player2 = 'O';

要打印电路板的第一行,我们需要使用下面的类:

cout << spots[0] << " | " << spots[1] << " | " << spots[2] << endl;

打印 1 | 2 | 3

下面是我如何将值分配给数组:

spots[1]= &player1;

所以如果我在棋盘上为玩家 1 选择 2,它会打印:
1 | XO | 3

然后我为player2选择3:
1 | XO |啊

如果我添加第三个字符:

char player1 = 'X';
char player2 = 'O';
char test = 'T';

然后它打印下面的内容:
1 | XOT| 3
1 | XOT|加时赛

我觉得这与字符位置有关,但我无法修复它。

最佳答案

你可以使用:

char *spots[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
char *player1 = "X";
char *player2 = "O";

然后赋值:

spots[i] = player1;

类型是一致的:spots是一个char *数组,将一个char *字符串赋给数组中的一个条目使得sense — 它是指向分配的以 null 结尾的字符串的指针,与 spots 中的其他值相同。

您可能需要考虑:

char *player[] = { "?", "X", "O" };

然后你可以使用:

spots[i] = player[j];

当然,“?” 允许您为播放器使用编码 12

使用您的代码,您将单个字符而不是字符串的地址分配给该位置,然后打印代码读取直到找到空值,这会导致混淆。

关于c++ - 将字符添加到 char*[] 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17890527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com