Мой вопрос в том, что я хотел бы избавиться от null, заменив их фразой «Яблоки». Если кто-то может взглянуть на мой код и сказать мне, где я ошибся, и какое решение я могу применить для выполнения этой задачи, было бы здорово.Замените все нули в матрице фразой Яблоки
ввода (текстовый файл):
A B C
Е Ж
Й К Л
char *map[10][10];
int loadMap(char * filename){
FILE *fp;
int row = 0;
int col= 0;
char buffer[1000];
char phrase[100] = "pass";
fp = fopen(filename,"r");
if(fp == NULL){
perror(filename);
return(1);
}
char ch;
while (1) {
fscanf(fp, "%s", buffer);
map[row][col] = (char *)malloc(sizeof(char) * (strlen(buffer) + 1));
strcpy(map[row][col], buffer);
ch = fgetc(fp);
if (ch == ' ') {
col += 1;
}
else if (ch == '\n') {
row += 1;
col = 0;
}
else if (ch == EOF) {
break;
}
}
return(0);
}
void DisplayMap(int size){
int row, columns;
for (row=0; row<DUNGEONSIZE; row++)
{
for(columns=0; columns<DUNGEONSIZE; columns++)
printf("%s ", map[row][columns]);
printf("\n");
}
}
Выход:
A B C (null) (null) (null) (null) (null) (null) (null)
E F G (null) (null) (null) (null) (null) (null) (null)
I J K L (null) (null) (null) (null) (null) (null)
L (null) (null) (null) (null) (null) (null) (null) (null) (null)
(null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
(null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
(null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
(null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
(null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
(null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
Я предполагаю, что карта является 2-мерным массивом указателя на символ? – engineer14
Да. char * map [10] [10]; –
Пожалуйста, предоставьте [mcve]. Кроме того, что такое вход и откуда идет выход (ваш код, как показано, не имеет выхода)? И, наконец, найдите время, чтобы исправить код вашего кода, чтобы сделать его более читаемым. – kaylum