Отсортировать массив символов (произвольный) по алфавиту - C (СИ)

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

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

Отсортировать массив символов (произвольный) по алфавиту. Создать функцию, которая выполняет эти действия для произвольного массива.

Решение задачи: «Отсортировать массив символов (произвольный) по алфавиту»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int cmp(const void * a, const void * b) {
    return *(char*)a - *(char*)b;
}
 
typedef char string_t[256];
#define get_string(s) ( scanf("%255[^\n]%*c", (s)) == 1 )
 
int main(void) {
    string_t str;
 
    while ( printf("String: ") && get_string(str) ) {
        qsort(str, strlen(str), 1, cmp);
        printf("Sorted: %s\n", str);
    }
 
    return 0;
}

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

  1. Подключение необходимых библиотек: - для работы с консолью, - для работы с функцией сортировки, - для работы со строками.
  2. Создание функции сравнения cmp, которая будет сравнивать два символа. В данном случае используется оператор вычитания для определения порядка символов.
  3. Создание структуры типа string_t для представления строки символов.
  4. Определение функции get_string, которая считывает строку символов с помощью функции scanf.
  5. В основной функции программы main создается строка str типа string_t.
  6. В цикле while происходит считывание строки символов с помощью функции get_string и ее сортировка с помощью функции qsort. В качестве аргументов функции qsort передаются: начальный адрес строки, длина строки, шаг (в данном случае 1), функция сравнения cmp.
  7. После сортировки выводится отсортированная строка.
  8. Цикл продолжается до тех пор, пока пользователь не введет пустую строку.
  9. Программа завершается с возвратом 0.

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


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

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

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