Почему вместо букв выводит разные символы? - 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");
 
    }

Объяснение кода листинга программы

В этом коде:

  1. Объявляется массив slovo типа char размером words (предположительно число) на 10 символов каждый.
  2. Инициализируется счётчик j равным нулю.
  3. В цикле while происходит чтение символов из строки str.
  4. Если текущий символ не пробел, то он записывается в текущую строку массива slovo и увеличивается счётчик j.
  5. Если текущий символ - пробел, то увеличивается счётчик k (который ищет следующую строку в массиве) и пропускается текущий символ.
  6. После окончания цикла, счётчик j сбрасывается в ноль.
  7. В цикле for для каждого подмассива slovo выводятся все его элементы.
  8. После каждой строки выводится символ новой строки \n. Если вместо букв выводятся разные символы, это может быть связано с тем, что вводные данные (строка str) содержат символы, которые не являются буквами латинского алфавита или не включены в диапазон символов, допустимых для представления в типе char.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.571 из 5
Похожие ответы