Отсортировать текст по алфавиту - C (СИ)
Формулировка задачи:
доброго времени суток!
нужно отсортировать текст по алфавиту (3 строки по 30 символов), справился с этой задачей лишь частично: смог отсортировать лишь строки, а не весь текст(массив), как нужно по заданию;
пример:
mama
dcba
в конечном итоге имею:
aamm
abcd
а должен:
aaabcdmm
Решение задачи: «Отсортировать текст по алфавиту»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare (const void *a, const void *b)
{
return *(char*)a - *(char*)b;
}
int main(void)
{
int i;
char str2[90], str[3][30] = {"mama", "dcba", "312"};
for (i=0; i < 3; i++)
strcpy(&str2[strlen(str2)], str[i]);
qsort (str2, strlen(str2), sizeof(char), compare);
printf("%s\n", str2);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с памятью и строками.
- Определение функции сравнения, которая будет использоваться в функции сортировки.
- Инициализация массива строк для сортировки.
- Копирование содержимого массива строк в одну строку, в конце которой будет добавляется символ '\0'.
- Использование функции быстрой сортировки для сортировки строки.
- Вывод отсортированной строки на экран.
- Возврат 0, что означает успешное выполнение программы.