Тема: Сортування слів (стрічок) за алфавітом з урахуванням літер і, є, ї, ґ
Доброго вечора.
Завдання: Розробити функцію для порівняння двох українських слів за абетковим порядком. З клавіатури по одному ввести набір українських слів і занести їх у масив рядків. Використовуючи розроблену функцію, відсортувати введені слова за абетковим порядком.
Проблема полягає в тому, що в кодовій таблиці (наприклад windows-1251) коди вище згаданих літер йдуть не за порядком. Підкажіть будь ласка, як можна це реалізувати. Дякую.
P.S. програмую на чистому С
фрагмент коду:
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define N 25
#define K 10
int EntArr(char (*)[]);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char arr[K][N];
puts("-----Сортування слів в абетковому порядку-----");
int kst=EntArr(arr);
int j=1, i=0;
char repl[N];
if (stricmp(arr[i], arr[j])==1)
{
strcpy(repl, arr[i]);
strcpy(arr[i], arr[j]);
strcpy(arr[j], repl);
}
while (i<kst)
{
puts(arr[i]);
i++;
}
return 0;
}
int EntArr (char mas[][N])
{
int i=0;
printf("\nВведення слів (max %d), для закінчення натисніть ENTER\n", K);
for (; i!=K; )
{
printf("Введіть %d слово: ", i+1);
gets(mas[i]);
if (*mas[i]==0)
return i;
i++;
}
return i;
}