给出预定义的二维字符数组值
Give a pre-defined 2-D char array values
char数组是在如下结构中定义的:
struct munchkin_grid_type
{
char grid[5][5];
};
在另一个函数中,一个变量被定义为这种新类型,我希望其中的char数组被填充:
munchkin_grid_type munchkin_grid;
munchkin_grid.grid[5][5] =
{
{ 'a', 'b', 'c', 'd', 'e' },
{ ' ', ' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ' },
{ '1', '2', '3', '4', '5' }
};
我得到的错误是:
错误C2440:"=":无法从"初始值设定项列表"转换为"char"
IntelliSense:初始值设定项值太多
如何在不使用std::array/vvector类型的情况下将这些值放入这个二维数组中?我只想要一个普通的2D字符数组。
而不是
munchkin_grid_type munchkin_grid;
munchkin_grid.grid[5][5] =
{
{ 'a', 'b', 'c', 'd', 'e' },
{ ' ', ' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ' },
{ '1', '2', '3', '4', '5' }
};
进行
munchkin_grid_type munchkin_grid =
{
{
{ 'a', 'b', 'c', 'd', 'e' },
{ ' ', ' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ' },
{ '1', '2', '3', '4', '5' }
}
};
编辑-根据要求解释其依据。
本质上,这是一个带有初始化程序的单个struct named
machkin_grid的定义。要理解它,请从背带中锻炼。
一个单独的字符数组将被初始化,类似于
char x[5] = {'a', 'b', 'c', 'd', 'e'};
char的二维数组引入了{}
的另一个嵌套。
char x[2][5] = {
{'a', 'b', 'c', 'd', 'e'},
{'1', '2', '3', '4', '5'}
};
我已经更改了示例中的第一个维度,因为对于5x5,不太清楚维度的初始化方式。例如,如果交换了尺寸,初始化程序也需要更改;
char y[5][2] = {
{'a', 'b'},
{'c', 'd'},
{'e', '1'},
{'2', '3'},
{'4', '5'}
};
然后,结构的初始化添加了另一个级别的{}
,以获得如上所述的munchkin_grid
的初始化器。
代码munchkin_grid.grid[5][5] =
正在访问数组的一个元素(您可能会将语法与另一种语言混淆…)删除[5][5]
应该可以解决您的问题。
编辑:以下代码应该可以工作(至少它没有产生任何IntelliSense错误。)
#include <array>
struct munchkin_grid_type
{
std::array<char, 5> grid[5];
};
munchkin_grid_type munchkin_grid;
munchkin_grid.grid[0] = {'a', 'b', 'c', 'd', 'e' };
munchkin_grid.grid[1] = { ' ', ' ', ' ', ' ', ' ' };
munchkin_grid.grid[2] = { ' ', ' ', ' ', ' ', ' ' };
munchkin_grid.grid[3] = { ' ', ' ', ' ', ' ', ' ' };
munchkin_grid.grid[4] = { '1', '2', '3', '4', '5' };
相关文章:
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何检查二维字符数组是否有空字
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 如何填充二维字符数组?C++
- 我如何用单词填充二维字符阵列
- 给出预定义的二维字符数组值
- 如何将二维字符类型数组逐行保存到 c 中的.txt文件中
- 二维字符数组C++
- 从C++文件中读取二维字符数组
- 将字符串复制到二维字符数组时出错
- 使用strncpy将字符串复制到二维字符数组中
- 比较 C++ 中的二维字符数组
- 给定一个二维字符矩阵,我们必须检查给定的单词是否存在于其中
- 正在将内存分配给二维字符数组,错误:从“void*”到“char**”的转换无效
- 在检查二维字符数组中的重叠时遇到麻烦
- 如何将字符变量存储为二维字符变量
- C/C++ 中的二维字符数组
- 将二维字符数组初始化为全空白时出现问题
- 对二维字符数组进行排序?C++