С клавиатуры вводится слово - C (СИ)

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

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

Здраствуйте. С клавиатуры вводится слово. Написать программу распечатывающую все буквы этого слова в алфавитном порядке. Максимальная длинна строк - не менее 80 символов. Помогите пожалуйста.

Решение задачи: «С клавиатуры вводится слово»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void * x1, const void * x2)
{
    return ( *(char*)x1 - *(char*)x2 );
}
void print_skip_spaces(char *str)
{
    for (char *ptr=str; *ptr; ptr++)
        if (*ptr != ' ') printf("%c", *ptr);
}
int main()
{
    char buf[BUFSIZ];
    while (printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf!='\n') {
        qsort(buf, strlen(buf) - 1, sizeof(char), compare);
        print_skip_spaces(buf);
    }
    return 0;
}

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

  1. Вводится слово с клавиатуры и сохраняется в буфере buf типа char[BUFSIZ]
  2. Используя функцию qsort, буфер buf сортируется в лексикографическом порядке (по возрастанию) с использованием функции compare в качестве функции сравнения.
  3. Используя функцию print_skip_spaces, отсортированное слово выводится на экран, пропуская пробелы.
  4. Процесс повторяется до тех пор, пока пользователь не введет пустую строку или не достигнет ограничения на количество вводимых данных (buf имеет ограниченную длину).

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


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

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

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