Como ordenar um array de string alfabeticamente (agrupamento não sensível a maiúsculas e minúsculas)
Eu preciso de um código de linguagem c para classificar algumas seqüências de caracteres e deve ser sensível a maiúsculas e minúsculaspara a mesma letra em maiúsculas e minúsculas, a minúscula deve vir primeiro. Por exemplo, o resultado da classificação para as seguintes sequências:
eggs
bacon
cheese
Milk
spinach
potatoes
milk
spaghetti
deveria estar:
bacon
cheese
eggs
milk
Milk
potatoes
spaghetti
spinach
Eu escrevi um código, mas o resultado que estou recebendo é:
Milk
bacon
cheese
eggs
milk
potatoes
spaghetti
spinach
Não tenho ideia de como melhorar isso e tenho pesquisado muito. Alguém poderia me ajudar com isso?
#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]);
}
}