Создать двумерный массив из одномерного массива - PullRequest
0 голосов
/ 06 марта 2019

Как сказано в заголовке, у меня есть функция «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 голосов
/ 06 марта 2019

Поскольку все, что вам нужно, это новая строка после каждых 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...