从1D阵列创建2D阵列

问题描述 投票:-1回答:1

如标题中所述,我有一个函数“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]);
        }

正如你所看到的,我只知道如何阅读每一个角色,但我不知道如何重新排队...如果有人能阅读我的代码并给我他/她的反馈,我真的很感激......谢谢提前 !

c arrays 2d
1个回答
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");
}
© www.soinside.com 2019 - 2024. All rights reserved.