Вывод по одному слову на строке - C (СИ)
Формулировка задачи:
Доброго времени суток!
Задача: написать программу, которая печатает содержимое своего ввода, помещая по одному слову на строке.
Написал такой вариант:
Условие в if для тех случаев, когда пробелов или табуляций несколько подряд.
Однако, работает только если пробелов 1 или 2 (подряд).
Помогите разобраться!
Листинг программы
- #include <stdio.h>
- main()
- {
- int c, p = 0;
- char n = '\n';
- while ( (c = getchar()) != EOF)
- {
- if ((c == '\t' || c == ' ') && ( p == 0)) /* печатаем \n только если счетчик на нуле*/
- {
- p++;
- putchar(n);
- }
- else
- {
- putchar(c); /* введен не пробел и не табуляция - обнуляем p */
- p = 0;
- }
- }
- return 0;
- }
Решение задачи: «Вывод по одному слову на строке»
textual
Листинг программы
- #include <stdio.h>
- /*
- * Напишите программу, которая печатает содержимое своего ввода, помещая по одному
- слову на каждой строке.
- */
- int main() {
- int c, ns;
- printf("Enter string: ");
- printf("\n");
- while ((c = getchar()) != '\n')
- {
- if(c == ' ' || c == '\t')
- {
- if(ns == 0)
- {
- ++ns;
- printf("\n");
- }
- }
- else
- {
- ns = 0;
- printf("%c", c);
- }
- }
- printf("\n");
- return 0;
- }
Объяснение кода листинга программы
В этом коде программа запрашивает у пользователя строку и выводит её по одному слову на строке.
- Объявлены две переменные:
c
иns
. - Переменная
c
используется для получения следующего символа из ввода пользователя. - Переменная
ns
используется для отслеживания количества слов в текущей строке. - Выводится приглашение для ввода строки.
- В цикле while считывается каждый символ из ввода пользователя, пока не будет получен символ новой строки.
- Если текущий символ является пробелом или табуляцией, и переменная
ns
равна 0, то увеличивается значениеns
и выводится символ новой строки. - Если текущий символ не является пробелом или табуляцией, то значение
ns
сбрасывается до 0, и текущий символ выводится на экран. - После окончания ввода строки выводится символ новой строки.
- Программа возвращает 0, что означает успешное завершение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д