Каждое слово вывести с новой строчки - 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и string.h
- Определение строки-разделителя DELIM, которая будет разделять вводимую строку на слова.
- Объявление переменных:
- buf — буфер для ввода строки
- p — указатель на текущее слово в буфере
- В цикле while с условием, что пользователь вводит строку и она не пустая, происходит следующее:
- В каждой итерации цикла в переменной p содержится следующее слово из введенной строки
- С помощью функции printf это слово выводится на экран
- В конце программы возвращается 0, что означает успешное выполнение программы