Jak sortować tablicę łańcuchów alfabetycznie (wielkość liter, niestandardowe sortowanie)
Potrzebuję kodu języka c, aby posortować niektóre ciągi i rozróżniać wielkość liter orazw przypadku tej samej litery w wielkich i małych literach najpierw należy umieścić małą literę. Na przykład wynik sortowania następujących ciągów:
eggs
bacon
cheese
Milk
spinach
potatoes
milk
spaghetti
powinno być:
bacon
cheese
eggs
milk
Milk
potatoes
spaghetti
spinach
Napisałem kod, ale rezultat, który otrzymuję, to:
Milk
bacon
cheese
eggs
milk
potatoes
spaghetti
spinach
Nie mam pojęcia, jak to poprawić, a ja dużo szukałem. Czy ktoś może mi w tym pomóc?
#include <stdio.h>
#include <string.h>
int main(){
char c;
char name[20][10], temp[10];
int count_name = 0;
int name_index = 0;
int i, j;
while ((c = getchar()) != EOF){
if (c == 10){
name[count_name][name_index] = '\0';
count_name++;
name_index = 0;
} else {
name[count_name][name_index] = c;
name_index++;
}
}
for(i=0; i < count_name-1 ; i++){
for(j=i+1; j< count_name; j++)
{
if(strcmp(name[i],name[j]) > 0)
{
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
for (i = 0; i < count_name; i++){
printf("%s\n", name[i]);
}
}