Veröffentlicht 27. Oktober 200519 j Hallo, ich hätte folgende Frage: Wie schaffe ich es einen Wert aus einem String Array in ein Char Array zu kopieren, um dass dann zum Vergleich zu übergeben? Hier mal der Code zum besseren Verständnis: { string wort[20]; chr *wortarray[20]; . . //Hier wird das String Array mit Wörtern aus einer Datei gefüllt . //Hier sollte dann der String in das Wortarray kopiert werden, um dann mit qsort sortiert zu werden qsort(wortarray,20,sizeof(char*), compare); //Aufruf von qsort } int compare(const void* left, const void* right) { return strcmp(*(char**)left,*(char**)right); } Danach soll das sortierte char Array wieder ins String Array geschrieben werden. Wer kann mir, bitte, bitte, bitte, helfen???? Ramme schon seit 3h den Kopf gegen den Tisch, hat aber leider noch nix gebracht. Mein erster Versuch war: int z2=0; do { wortarray[z2]=wort[z2]; z2++; }while(z2==19);
27. Oktober 200519 j Muss es denn qsort sein? Warum nicht std::sort? Damit könntest du das das string-Array direkt sortieren.
27. Oktober 200519 j Autor Benutzt std::sort denn den Quicksort Algorithmus? Wenn ja, dann wär ich damit auch super glücklich...
27. Oktober 200519 j Benutzt std::sort denn den Quicksort Algorithmus? Wenn nicht, dann etwas besseres. Neuere Implementierungen benutzen üblicherweise einen Algorithmus, der auch im Worst case O(n log n) hat. Da das eine Templatefunktion ist, kannst du dir den Quellcode ansehen. #include <algorithm> string wort[20]; std::sort(wort, wort+20);[/code]
27. Oktober 200519 j Autor Das Problem ist aber, das ich mit quicksort sortieren soll (Übungsaufgabe). Werde die Lösung zwar auch einbinden, aber ein quicksort wär mir seeeeeeeeeeeeeehr lieb.
27. Oktober 200519 j Wenn du als Übungsaufgabe mit Quicksort sortieren sollst, dann sollst du den Algorithmus vermutlich selbst implementieren. Dann darfst du keine vorgefertigte Funktion benutzen, weder std::sort noch qsort.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.