Вывести строку так, чтобы за каждым словом следовало количество пробелов, равное длине слова - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: iostream.h и string.h
  2. Определение строки-разделителя DELIM, которая будет использоваться для разделения входной строки на слова.
  3. В основной функции программы main() объявляется буферная переменная buf, которая будет использоваться для хранения строки, введенной пользователем.
  4. В цикле while программа запрашивает у пользователя ввод строки и сохраняет ее в переменной buf.
  5. Затем программа разбивает входную строку на слова, используя функцию strtok().
  6. В цикле for каждое слово выводится на экран, после чего в этом же цикле устанавливается количество пробелов, равное длине слова, и это слово выводится еще раз.
  7. В конце программы выводится символ новой строки \n.
  8. В конце функции main() возвращается 0, что означает успешный конец работы программы.

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


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

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

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