Structarray sortieren



  • HAllöchen

    ich habe ein kleines Problem mit dem qsort().

    Syntax von qsort ist ja:

    qsort (values, 6, sizeof(int), compare);
    

    Und die compare-Funktion gleich dazu:

    int compare (const void * a, const void * b)
    {
      return ( *(int*)a - *(int*)b );
    }
    

    Was ich erreichen möchte ist, das qsort mir ein stringarray in einem structarray sortiert und zwar nach dem alphabet.^^

    Nu habe ich folgendes probiert:

    qsort (ab.wort, maxAnzahl, sizeof(char), compare);
    

    doch er spuckt mir einen Fehler aus

    Fehler: Anfrage nach Element »wort« in etwas, was keine Struktur oder Variante ist

    Mein Struct sieht so aus:

    struct wort {
    	char wort[100];
    	int zeilenlaenge;
    
    }wort;
    

    Was habe ich falsch gemacht? Kann ich das überhaupt mit der Funktion qsort lösen, beim bubblesort, selectsort etc. bekomme ich den gleichen Fehler raus x)



  • gelöst xD



  • Ich poste einfach mal die Lösung, ist aber komischer Weise nicht ganz richtig, er sortiert zwar alles, aber manche Wörter wiederum doch nicht

    Struct:

    struct zewo {
    	char wort[100];
    	int zeilenlaenge;
    
    };
    

    compare-Funktion

    int compare(const void * a, const void *b)
    {
    	struct zewo *ia = (struct zewo *)a;
    	struct zewo *ib = (struct zewo *)b;
    	return strcmp(ia->wort, ib->wort);
    }
    

    Kann das vllt jemand bitte kurz richtig stellen, damit es nach dem Alphabet geht?^^


Anmelden zum Antworten