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?^^