【问题标题】:How to create a 2D array of "-" in C如何在 C 中创建 \"-\" 的二维数组
【发布时间】:2023-01-18 01:06:11
【问题描述】:

我想创建如下所示的“-”二维数组

我尝试过这样的事情但它没有用(10 x 10)

char table[10][10];

for (int i = 0; i < 10; i ++){
    for (int j = 0; j < 10; j++)
    {
        strcpy(table[10][i], "-");
    }
}

【问题讨论】:

  • 你想填充二维数组,还是打印图案?
  • strcpy(table[10][i], "-"); -> for (int j = 0; j &lt; 10; j++){table[i][j] = '-';}
  • @wohlstad 我想填充二维数组以创建坐标系。
  • @StevenOh 停止使用 C++ 编译器来编译 C 代码

标签: arrays c char


【解决方案1】:

整个二维数组?

如果不是字符串,则使用memset(table, '-', sizeof table); 将每个字节填充为'-'。不需要 for 循环。

【讨论】:

  • 嗨,这给了我一个错误“不兼容的整数到指针的转换,将‘int’传递给‘const void *’类型的参数”
  • @wohlstad 这非常有效!
【解决方案2】:
char table[10][10];

for (size_t i = 0; i < sizeof(table) / sizeof(table[0]); i ++){
    for (size_t j = 0; j < sizeof(table[i]; j++)
    {
        table[i][j] =  `-`);
    }
}

memset(table, '-', sizeof(table))

如果你想要 10 个字符串(空字符终止)

for (size_t i = 0; i < sizeof(table) / sizeof(table[0]); i ++){
    memset(table[i], `-`, sizeof(table[i]) - 1);
    table[i][sizeof(table[i]) - 1] = 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多