Сортировка букв в алфавитном порядке - C (СИ)

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

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

сортировка латинских букв в строке в алфавитном порядке. В программе должен быть реализован алгоритм сортировки распределением. Вход: elephant Вывод: aeehlnpt Строка содержит только маленькие латинские буквы.

Решение задачи: «Сортировка букв в алфавитном порядке»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
static int charcmp(const void *a, const void *b) {
    return (*((char*)a) > *((char*)b));
}
 
int main() {
    char s[] = "elephant";
    qsort(s, strlen(s), sizeof(*s), charcmp);
    puts(s);
}

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

В данном коде реализуется сортировка строки elephant в алфавитном порядке с использованием функции qsort() из библиотеки .

  1. Создаётся статическая функция charcmp(), которая принимает два указателя на символы (представляемые как void*), и возвращает отрицательное значение, если первый символ меньше второго, положительное значение, если первый символ больше второго, и 0, если символы равны. Это нужно для корректной работы функции qsort().
  2. В функции main() создаётся массив символов elephant с помощью строки s[] и выводится на экран с помощью функции puts().
  3. Затем вызывается функция qsort(), которая сортирует массив символов s[] в порядке возрастания. В качестве аргументов функции qsort() передаются: начальный индекс массива (s), длина массива (strlen(s)), размер одного элемента массива (sizeof(*s)), и функция сравнения charcmp().
  4. После сортировки массив символов выводится на экран с помощью функции puts().

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


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

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

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