Приветствую Вас Гость | RSS

Язык программирования С

Воскресенье, 06.07.2025, 11:32
Главная » 2010 » Март » 05 » 1.5.3. Подсчет строк. Упражнение 1.9.
19:57
1.5.3. Подсчет строк. Упражнение 1.9.

Упражнение 1.9. Напишите программу для копирования входного потока в выходной с заменой каждой строки, состоящей из одного или нескольких пробелов, одним пробелом.

/* замена нескольких пробелов одним пробелом */

#include "stdafx.h"

int main()
{

int c;
int nspace = 0; // пробелы


while ((c = getchar()) != EOF) {

/* если c - пробел, увеличиваем счетчик пробелов на 1 */
if(c == ' ')

++nspace;

/* если число пробелов больше одного, затираем один символ и уменьшаем счетчик пробелов на 1 */
if(nspace > 1){

putchar('\b');
--nspace;

}
/* если c - не пробел, обнуляем счетчик пробелов */
if(c != ' ')

nspace = 0;

putchar(c);

}

}

Результат выполнения:

Замена нескольких пробелов одним пробелом
Просмотров: 4050 | Добавил: brainfrog | Теги: копирование, программа, табуляция, упражнение, пробел, замена | Рейтинг: 3.8/8
Всего комментариев: 3
3 lionsay  
0
Mirano, к сожалению эти примеры не пропускают похожие символы вообще, не только пробелы.

2 Mirano  
-1
Этот же пример, только подправленный моим учителем:
main() {
int c, u;
u = c = getchar ();
while ( c != EOF ) {
c = getchar ();
if (u != c) putchar(u);
u = c;
}
}

1 Mirano  
-1
Мой скромный пример, для разнообразия и критики:
main() {
int c, u;
c = getchar ();
u = c;
while ( c != EOF ) {
c = getchar ();
if (u != c) {
putchar(u);
};
u = c;
}
}

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]