Вывод по одному слову на строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Задача: написать программу, которая печатает содержимое своего ввода, помещая по одному слову на строке. Написал такой вариант:
Листинг программы
  1. #include <stdio.h>
  2. main()
  3. {
  4. int c, p = 0;
  5. char n = '\n';
  6. while ( (c = getchar()) != EOF)
  7. {
  8. if ((c == '\t' || c == ' ') && ( p == 0)) /* печатаем \n только если счетчик на нуле*/
  9. {
  10. p++;
  11. putchar(n);
  12. }
  13. else
  14. {
  15. putchar(c); /* введен не пробел и не табуляция - обнуляем p */
  16. p = 0;
  17. }
  18. }
  19. return 0;
  20. }
Условие в if для тех случаев, когда пробелов или табуляций несколько подряд. Однако, работает только если пробелов 1 или 2 (подряд). Помогите разобраться!

Решение задачи: «Вывод по одному слову на строке»

textual
Листинг программы
  1. #include <stdio.h>
  2. /*
  3.  * Напишите программу, которая печатает содержимое своего ввода, помещая по одному
  4. слову на каждой строке.
  5.  */
  6.  
  7. int main() {
  8.     int c, ns;
  9.  
  10.     printf("Enter string: ");
  11.     printf("\n");
  12.  
  13.     while ((c = getchar()) != '\n')
  14.     {
  15.         if(c == ' ' || c == '\t')
  16.         {
  17.             if(ns == 0)
  18.             {
  19.                 ++ns;
  20.                 printf("\n");
  21.             }
  22.         }
  23.         else
  24.         {
  25.             ns = 0;
  26.             printf("%c", c);
  27.         }
  28.     }
  29.     printf("\n");
  30.     return 0;
  31. }

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

В этом коде программа запрашивает у пользователя строку и выводит её по одному слову на строке.

  1. Объявлены две переменные: c и ns.
  2. Переменная c используется для получения следующего символа из ввода пользователя.
  3. Переменная ns используется для отслеживания количества слов в текущей строке.
  4. Выводится приглашение для ввода строки.
  5. В цикле while считывается каждый символ из ввода пользователя, пока не будет получен символ новой строки.
  6. Если текущий символ является пробелом или табуляцией, и переменная ns равна 0, то увеличивается значение ns и выводится символ новой строки.
  7. Если текущий символ не является пробелом или табуляцией, то значение ns сбрасывается до 0, и текущий символ выводится на экран.
  8. После окончания ввода строки выводится символ новой строки.
  9. Программа возвращает 0, что означает успешное завершение.

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


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

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

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы