Программа, копирующая символы ввода в выходной поток, и заменяющая стоящие подряд пробелы на один - C (СИ)
Формулировка задачи:
Эта задача взята из учебника Керниган-Ритчи. Использую компилятор NetBeans 8.1. Все мои попытки написать действующую программу не оказались очень успешными.Как лучше подсчитать N-ое количество пробелов и вывести только один или просто подскажите куда копать...
Решение задачи: «Программа, копирующая символы ввода в выходной поток, и заменяющая стоящие подряд пробелы на один»
textual
Листинг программы
#include <stdio.h> main () { int c, spacebar = 0; while ( ( c = getchar ( ) ) != EOF ) { if ( c != ' ' ) spacebar = 0; if ( c == ' ' ) ++spacebar; if ( spacebar <= 1 ) putchar ( c ); } }
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Объявление переменных: — c — для хранения очередного вводимого символа — spacebar — для подсчёта количества пробелов
- Вход в цикл while, который будет выполняться до тех пор, пока не достигнут конец файла (EOF)
- Получение очередного символа с помощью функции getchar и сохранение его в переменной c
- Если полученный символ не является пробелом, то сбрасываем счётчик spacebar в 0
- Если полученный символ является пробелом, то увеличиваем счётчик spacebar на 1
- Если счётчик spacebar меньше или равен 1, то выводим текущий символ с помощью функции putchar
- Цикл while будет выполняться до тех пор, пока не достигнет конца файла (EOF)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д