Программа для копирования входного потока в выходной с заменой каждой строки - C (СИ)

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

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

Программа для копирования входного потока в выходной с заменой каждой строки, состоящей из одного или нескольких пробелов, одним пробелом.
Листинг программы
  1. #include <stdio.h>
  2. void main (void) {
  3. int c;
  4. while((c = getchar()) != EOF) {
  5. if(c == ' ') {
  6. putchar(c);
  7. while((c = getchar()) != EOF && c == ' ');
  8. }
  9. putchar(c);
  10. }
  11. return;
  12. }
Объясните пожалуйста построчно принцип действия, до меня что-то слабо доходит, с 7-ой по 13 строку.

Решение задачи: «Программа для копирования входного потока в выходной с заменой каждой строки»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main () {
  4.     int c;
  5.     while((c = getchar()) != EOF) {
  6.         if(c == ' ') {
  7.             putchar(c);
  8.             while((c = getchar()) != EOF && c == ' ')
  9.                 ;
  10.         }
  11.         putchar(c);
  12.     }
  13.     return 0;
  14. }

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

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

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


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

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

14   голосов , оценка 4.143 из 5

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

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

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