Wie sortiert ein array von Strings nach dem Alphabet (groß-und Kleinschreibung, nicht standardmäßige Sortierung)

Brauche ich eine c-Sprache-code zum Sortieren ein paar Streicher, und es sollte groß-und Kleinschreibung und für den gleichen Buchstaben in der oberen - und unteren-Fälle, die lower-case müssen kommen ersten. Zum Beispiel das Ergebnis der Sortierung für die folgenden Zeichenfolgen:

eggs
bacon
cheese
Milk
spinach
potatoes
milk
spaghetti

werden sollte:

bacon
cheese
eggs
milk
Milk
potatoes
spaghetti
spinach

Habe ich geschrieben code, sondern das Ergebnis, das ich erhalte ist:

Milk
bacon
cheese
eggs
milk
potatoes
spaghetti
spinach

Ich habe keine Ahnung, wie das zu verbessern und ich gesucht haben, eine Menge. Könnte mir jemand helfen mit diesem?

#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]);
    }
}

InformationsquelleAutor der Frage Brad Capehart | 2012-09-28

Schreibe einen Kommentar