【问题标题】:2 Dimensional Char Array C++二维字符数组 C++
【发布时间】:2014-12-30 00:11:30
【问题描述】:

有没有这样一种方法来初始化一个 char 数组,然后遍历它们并更改值?我正在尝试创建一个类似结构的表。

我只是不断收到诸如“无法使用'const char [3]'类型的左值初始化'char'类型的值。

我正在使用 Xcode 6.1.1 进行开发

int width = 25;
int height = 50;


char board [50][25] = {""}; // height x width

for (int i = 0; i < width; i++) {
    for (int j = 0; i < height; i++) {

        if (i == 0) {
            board[i][j] = {"||"};
        }

    }
}

【问题讨论】:

  • 二维数组中的每个元素都是一个char

标签: c++ arrays


【解决方案1】:

问题在于 board[i][j] = {"||"}; 。字符串"||" 不能隐式转换为单个字符。

不清楚您要做什么;板的每个单元格是一个char|| 是两个字符。二不合一。也许你的意思是:

board[i][j] = '|';

此外,您的循环嵌套是向后的(height 循环应该是外部循环)。数组的索引与其声明相同,因此当声明为 char board[50][25] 时,board[i][j] 工作,i 必须在 049 的范围内。

一个改进是:

int const width = 25;
int const height = 50;
char board[height][width] = {};

for (int h = 0; h < height; h++)
    for (int w = 0; w < width; w++) 

【讨论】:

    【解决方案2】:

    用单引号设置数组中的字符,而不是双引号。所以:

    board[i][j] = '|';
    

    另外,请注意每个位置只能放置一个字符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2017-12-29
      • 2019-01-23
      • 2021-06-12
      相关资源
      最近更新 更多