从一维数组创建二维数组

时间:2019-03-06 17:56:43

标签: c arrays 2d

正如标题中所述,我有一个函数“ load”,该函数返回一个包含2个int和一个字符数组的结构。该数组位于1D上,看起来像:[################ ### $ $ ####。####。 #。@ ### $#* ### ###############] 我想将其打印为:

##########
######  ##
# $  $  ##
# #  .# ##
#  . #.@ #
##$# *   #
##  ######
##########

知道宽度在这里10。 所以我的问题是,如何每10个字符返回到下一行...? 这是我到目前为止所写的内容:

void print_map(map map_loaded){
    char *p=map_loaded.p_char;
    int height=map_loaded.height;
    for(int i=0; i<height; i++){
            printf("%c", *p[i]);
        }

正如您所看到的,我只知道如何阅读每个字符,但是我不知道如何返回行... 如果有人可以阅读我的代码并给我他/她的反馈,我将不胜感激!预先感谢!

1 个答案:

答案 0 :(得分:0)

由于您需要的是每10个字符后换一行,因此只需检查自上次添加新行以来是否已打印10个字符即可。

void print_map(map map_loaded){
char *p=map_loaded.p_char; 
int height=map_loaded.height; 
for(int i=0; i<height; i++){ 
printf("%c", p[i]);

if( (i+1)%10==0)
printf("\n");
}