Отсортировать массив символов (произвольный) по алфавиту - 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
- для работы с консолью, - для работы с функцией сортировки, - для работы со строками. - Создание функции сравнения cmp, которая будет сравнивать два символа. В данном случае используется оператор вычитания для определения порядка символов.
- Создание структуры типа string_t для представления строки символов.
- Определение функции get_string, которая считывает строку символов с помощью функции scanf.
- В основной функции программы main создается строка str типа string_t.
- В цикле while происходит считывание строки символов с помощью функции get_string и ее сортировка с помощью функции qsort. В качестве аргументов функции qsort передаются: начальный адрес строки, длина строки, шаг (в данном случае 1), функция сравнения cmp.
- После сортировки выводится отсортированная строка.
- Цикл продолжается до тех пор, пока пользователь не введет пустую строку.
- Программа завершается с возвратом 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д