Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова - C (СИ) (76425)
Формулировка задачи:
Ввести строку. Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова.
Решение задачи: «Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
#define SIZE 1000
int main(void)
{
char line[SIZE];
int i, j;
fgets(line, SIZE, stdin);
for (i = 0; line[i] != '\n' && line[i] != '\0'; ) {
while (isspace(line[i]))
putc(line[i++], stdout);
if (!isspace(line[i])) {
for (j = 0; !isspace(line[i]) && (line[i] != '\n' && line[i] != '\0'); ++j, ++i)
putc(line[i], stdout);
while (--j > 0)
putc(' ', stdout);
}
}
if (line[i] == '\n')
putc(line[i], stdout);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Вводится строка с помощью функции
fgets(). - Происходит проход по каждому символу строки.
- Если текущий символ является пробелом, то он выводится на экран.
- Если текущий символ не является пробелом, то происходит проход по всем последующим символам до следующего пробела или конца строки. Выводятся все эти символы, а затем выводится пробел.
- Если текущий символ является символом новой строки, то он выводится на экран.
- В конце программы выводится символ новой строки.
- Программа завершается с возвращаемым значением 0, что означает успешное выполнение.