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

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

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

Эта задача взята из учебника Керниган-Ритчи. Использую компилятор NetBeans 8.1. Все мои попытки написать действующую программу не оказались очень успешными.Как лучше подсчитать N-ое количество пробелов и вывести только один или просто подскажите куда копать...

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

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

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

  1. Подключение стандартной библиотеки ввода-вывода
  2. Объявление переменных: — c — для хранения очередного вводимого символа — spacebar — для подсчёта количества пробелов
  3. Вход в цикл while, который будет выполняться до тех пор, пока не достигнут конец файла (EOF)
  4. Получение очередного символа с помощью функции getchar и сохранение его в переменной c
  5. Если полученный символ не является пробелом, то сбрасываем счётчик spacebar в 0
  6. Если полученный символ является пробелом, то увеличиваем счётчик spacebar на 1
  7. Если счётчик spacebar меньше или равен 1, то выводим текущий символ с помощью функции putchar
  8. Цикл while будет выполняться до тех пор, пока не достигнет конца файла (EOF)

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


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

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

7   голосов , оценка 3.571 из 5

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

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

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