繁体   English   中英

如何在 C 中创建“-”的二维数组

[英]How to create a 2D array of "-" in C

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

在此处输入图像描述

我尝试过这样的事情但它没有用(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], "-");
    }
}

整个二维数组?

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

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;
}

不提倡这样做是为了可移植性,但如果您使用的是 GCC,则可以使用以下GNU 扩展在声明处进行初始化

char table[10][10] = { [0 ... 9] = {[0 ... 9] = '-'} };

演示

(公然抄袭这个答案

#include <stdio.h>

int main() 
{

char table[10][10];

for (int i = 0; i < 10; i ++)
{
    for (int j = 0; j < 10; j++)
    {
        table[i][j]= '-';  //instead of using strcpy we can assign values like this//
    }
}
for (int i = 0; i < 10; i ++)
{
    for (int j = 0; j < 10; j++)
    {
        printf("%c",table[i][j]); //It is used to print characters//
    }
    printf("\n"); //It is used to have a new line//
}  
return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM