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

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

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

Упражнение 1.9.

Напишите программу для копирования входного потока в выходной с заменой каждой строки, состоящей из одного или нескольких пробелов, одним пробелом.
У меня получилось так:
#include <stdio.h>
 
int main() {
    int c;
    while((c=getchar())!=EOF) {
    if(c==' ') {
        putchar(c);
        while((c=getchar())!=EOF && c==' ');
        }
    putchar(c);
    }
    return 0;
}
Вот решение через запоминание: http://antilopu-gnu.blogspot.ru/2012/10/blog-post_22.html
#include <stdio.h>
/* замена стоящих подряд пробелов на один пробел */
main()
{
    int c, pred;
 
    pred = 0;
 
    while((c = getchar()) != EOF){
        if(c == ' '){
            if(pred == 0){   /* был ли ранее пробел */
                putchar(c);  /* если нет - печатаем */
                pred = 1;    /* и запоминаем */
            }
        }
        if(c != ' '){
            putchar(c);
            pred = 0;
        }
    }
}
А вот ещё ряд решений: http://clc-wiki.net/wiki/K%26R2_solutions:Chapter_1:Exercise_9

Кто-нибудь предложит решение не похожее на упомянутые?

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

textual
Листинг программы
Program.exe < input.txt > output.txt

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


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

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

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