Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова - C (СИ) (76429)
Формулировка задачи:
Ввести строку. Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова.
Решение задачи: «Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define DELIM " \t\n"
int main(void) {
char buf[BUFSIZ];
while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
char * p;
for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) ) {
printf("%s", p);
memset(p, ' ', strlen(p));
printf("%s", p);
}
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и string.h
- Определение строки-разделителя DELIM, которая будет использоваться для разделения входной строки на слова.
- В основной функции программы main() объявляется буферная переменная buf, которая будет использоваться для хранения строки, введенной пользователем.
- В цикле while программа запрашивает у пользователя ввод строки и сохраняет ее в переменной buf.
- Затем программа разбивает входную строку на слова, используя функцию strtok().
- В цикле for каждое слово выводится на экран, после чего в этом же цикле устанавливается количество пробелов, равное длине слова, и это слово выводится еще раз.
- В конце программы выводится символ новой строки
\n. - В конце функции main() возвращается 0, что означает успешный конец работы программы.