【发布时间】:2019-04-26 10:47:25
【问题描述】:
我正在尝试使用以下方法将一维字符串数组转换为二维字符数组:
'''''''''''''''
variables
'''''''''''''''
const int width = 20;
const int height = 20;
char arena[width][height];
string arenaline[height];
'''''''''''''''
setup
'''''''''''''''
arenaline[1] = "####################";
arenaline[2] = "#..................#";
arenaline[3] = "#..................#";
arenaline[4] = "###...###..###...###";
arenaline[5] = "#.......#..#.......#";
arenaline[6] = "###...###..###...###";
arenaline[7] = "#..................#";
arenaline[8] = "###...###..###...###";
arenaline[9] = "#.......#..#.......#";
arenaline[10] = "#########..#########";
arenaline[11] = "###..............###";
arenaline[12] = "###.#####..#####.###";
arenaline[13] = "###.####....####.###";
arenaline[14] = "###.####....####.###";
arenaline[15] = "#.....###..###.....#";
arenaline[16] = "#.....###..###.....#";
arenaline[17] = "#..#..###..###..#..#";
arenaline[18] = "#.....###..###.....#";
arenaline[19] = "#.....###..###.....#";
arenaline[20] = "####################";
'''''''''''''''
conversion
'''''''''''''''
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
arena[j][i] = arenaline[i].substr(j,1);
}
}
我希望它从子字符串转换为字符,以便我可以在数组中使用它。
我不能使用字符串代替字符,因为它破坏了将数组输出到控制台的函数。
【问题讨论】:
-
为什么不把
std::string不支持的功能改成std::string支持呢? -
另外不要忘记数组索引是从零开始的(所以你的初始化是错误的,并且无论如何都不会工作,如图所示)并且 C++ 中的
char字符串实际上被称为 null-terminated 字节字符串,如果你想对字符串使用 C 字符串函数,你也需要为该终止符留出空间。
标签: c++ string char data-conversion