-1

ここに sort_list_forward という小さな関数があります

struct customer * sort_list_forward (struct customer * liste_)
{
    struct customer *pointer1, *pointer2;
    struct customer tmp;

    if (liste_!=NULL)
    {
        pointer1 = liste_;
        while(pointer1 != NULL)
        {
            pointer2 = pointer1->next;
            while(pointer2 != NULL)
            {

                if (strcmp(pointer1->name,pointer2->name) > 0)
                {
                    strcpy(tmp.name, pointer2->name);
                    strcpy(pointer2->name, pointer1->name);
                    strcpy(pointer1->name, tmp.name);
                }
                pointer2 = pointer2->next;
            }
            pointer1 = pointer1->next;
        }
        return liste_;
    }
    else
    {
        printf("sortnames: no elements avaiable");
        return NULL;
    }
}

構造体の顧客は次のようになります

typedef struct customer {
    char name[256];
    struct customer *next;
    struct customer *previous;
};

この関数を使用すると、出力は次のようになります

Ann
Bernd
Hans
barbara
bart
berta
homer

しかし、次のような出力が必要です

Ann
barbara
bart
berta
Bernd
homer
Hans

a A b B c C d D ...

8時間以上検索しましたが、何も見つかりませんでした:(

4

2 に答える 2

3

の代わりにstrcmp、 を呼び出して、照合順序を使用して文字列を比較しますstrcoll

于 2013-03-30T16:22:20.323 に答える