Почему вместо букв выводит разные символы? - C (СИ)
Формулировка задачи:
Почему вместо букв выводит разные символы?
char str[80]; printf("Input string: "); gets(str); printf("\nstroka:%s",str); int words = 1; int i = 0; int j; int k; while(str[i] != '\0') { if(str[i] == ' ') { words++; } i++; } printf("\n\nWords = %d\n",words); char slovo[words][5]; while(str[i]!='\0') { if(str[i]!=' ') { slovo[k][j]=str[i]; j++; } else {k++; i++; } } for(k=0;k<words;k++) { for(j=0;j<5;j++) printf("%6c",slovo[k][j]); printf("\n");
Решение задачи: «Почему вместо букв выводит разные символы?»
textual
Листинг программы
char slovo[words][10]; int j=0; while(str[i]!='\0') { if(str[i]!=' ') { slovo[k][j]=str[i]; j++; } else {k++; i++; } j=0; } for(k=0;k<words;k++) { for(j=0;j<10;j++) printf("%c",slovo[k][j]); printf("\n"); }
Объяснение кода листинга программы
В этом коде:
- Объявляется массив
slovo
типаchar
размеромwords
(предположительно число) на 10 символов каждый. - Инициализируется счётчик
j
равным нулю. - В цикле
while
происходит чтение символов из строкиstr
. - Если текущий символ не пробел, то он записывается в текущую строку массива
slovo
и увеличивается счётчикj
. - Если текущий символ - пробел, то увеличивается счётчик
k
(который ищет следующую строку в массиве) и пропускается текущий символ. - После окончания цикла, счётчик
j
сбрасывается в ноль. - В цикле
for
для каждого подмассиваslovo
выводятся все его элементы. - После каждой строки выводится символ новой строки
\n
. Если вместо букв выводятся разные символы, это может быть связано с тем, что вводные данные (строкаstr
) содержат символы, которые не являются буквами латинского алфавита или не включены в диапазон символов, допустимых для представления в типеchar
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д