Каждое слово вывести с новой строчки - C (СИ)

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

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

Составить программу, которая копирует на экран, текст с клавиатуры и располагает каждое слово в новую строчку. Учитывать что между словами может быть несколько пробелов, в этом случае между словами не должно пропускаться несколько строк.

Решение задачи: «Каждое слово вывести с новой строчки»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int main(void) {
    char buf[BUFSIZ], * p;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) )
            printf("%s\n", p);
    
    return 0;
}

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

  1. Подключение необходимых библиотек: iostream.h и string.h
  2. Определение строки-разделителя DELIM, которая будет разделять вводимую строку на слова.
  3. Объявление переменных:
    • buf — буфер для ввода строки
    • p — указатель на текущее слово в буфере
  4. В цикле while с условием, что пользователь вводит строку и она не пустая, происходит следующее:
    • В каждой итерации цикла в переменной p содержится следующее слово из введенной строки
    • С помощью функции printf это слово выводится на экран
  5. В конце программы возвращается 0, что означает успешное выполнение программы

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

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