ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
321
321
EMPFEHLEN
-
Funktion:
Das Programm soll das Array *namen[] alphabetisch sortieren, bevor ich das array *namen[] mit strcpy mit den strings des zweidimensionallen arrays aufgefüllt habe .
hi, hier mal ein ausschnitt aus meinem programm ich weiß das 2 fehler enthalten sind
einmal bei(wobei zuweisen mit = funktioniert, wills aber mit strcpy machen) und einmal bei derCode :1 2
for(a=0;a<*namezaehl;a++) strcpy(namen[a],(*liste)[0][a].name);
und derCode :1
qsort(namen,*namezaehl,sizeof(char),vergl);
funktion.Code :1 2 3 4
int vergl(const void *name1, const void *name2) { return(strcmp(* (char*) name1, * (char*)name2)); }
Hier der komplette Code, ich habe schon alles mögliche probiert und in meinen C-Buch nichts passendes gefunden warum das nicht gehen könnte.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
void ausgabe_alle(int *namezaehl,struct listen (*liste)[3][100]) { int i,a; char *namen[100]; for(a=0;a<*namezaehl;a++) strcpy(namen[a],(*liste)[0][a].name); qsort(namen,*namezaehl,sizeof(char),vergl); printf("\n....Gemischte Liste......\n"); for(i=0;i<(*namezaehl);i++) { printf("%s\n",namen[i]); } printf(".....Listenende....."); } int vergl(const void *name1, const void *name2) { return(strcmp(* (char*) name1, * (char*)name2)); }
Wie gesagt es ist nur ein Ausschnitt die main und ein paar andere funktionen funktionieren.
-
05.12.10 22:46 #2
- Registriert seit
- Oct 2010
- Beiträge
- 35
Hier ist ziemlich viel falsch, du musst dir schon im Klaren sein, was du mit qsort denn sortieren willst.
Dein sizeof(char) ist nicht die Elementgröße, deine Vergleichsfunktion arbeitet ebenso nicht auf Elementen des Typs, nach dem du sortieren willst.
-
hab nun ein bisschen was verändert,
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
void ausgabe_alle(int *namezaehl,struct listen (*liste)[3][100]) { int i,a; char *namen[100]; for(a=0;a<*namezaehl;a++) strcpy(namen[a],(*liste)[0][a].name); qsort(namen,*namezaehl,sizeof(char*),vergl); printf("\n....Gemischte Liste......\n"); for(i=0;i<(*namezaehl);i++) { printf("%s\n",namen[i]); } printf(".....Listenende....."); } int vergl(const void *name1, const void *name2) { return strcmp(* (const char **) name1, * (const char **)name2); }
Ähnliche Themen
-
strcpy
Von reto-meier im Forum C/C++Antworten: 3Letzter Beitrag: 15.04.09, 11:22 -
OLEDB Insert Befehl für Excel wird als Falsch deklariert
Von bierber im Forum .NET DatenverwaltungAntworten: 1Letzter Beitrag: 30.08.07, 18:54 -
Hat qsort() in C Grenzen?
Von mc_gulasch im Forum C/C++Antworten: 2Letzter Beitrag: 13.06.06, 12:30 -
Sortieren mit qsort, aber wie?
Von aRR im Forum C/C++Antworten: 6Letzter Beitrag: 15.05.04, 13:05 -
qsort Problem
Von daywalkertp im Forum C/C++Antworten: 2Letzter Beitrag: 06.04.03, 22:11





Zitieren
Login






