Cómo ordenar una matriz de cadenas alfabéticamente (distingue entre mayúsculas y minúsculas, intercalación no estándar)
Necesito un código de lenguaje C para ordenar algunas cadenas y debe ser sensible a mayúsculas y minúsculas.para la misma letra en mayúsculas y minúsculas, la minúscula debe aparecer primero. Por ejemplo, el resultado de la clasificación para las siguientes cadenas:
eggs
bacon
cheese
Milk
spinach
potatoes
milk
spaghetti
debiera ser:
bacon
cheese
eggs
milk
Milk
potatoes
spaghetti
spinach
He escrito un código pero el resultado que obtengo es:
Milk
bacon
cheese
eggs
milk
potatoes
spaghetti
spinach
No tengo idea de cómo mejorar esto y he buscado mucho. ¿Podría alguien ayudarme con esto?
#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]);
}
}