Effizientes Sortieren von Strings mit C

Wie kann ich unter C mit wenig Aufwand an Programmierung und Rechenzeit eine lange Liste von Strings nach bestimmten Kriterien auf einfache Weise z. B. alphabetisch oder nach einer darin enthaltenen Zahl sortieren?
qsort machte große Probleme und ließ sich nicht einfach einsetzen. Welche Datenstruktur ist hierfür am geeignetsten, evtl. CStringArray oder etwas ähnliches?
Mit den vorgegebenen Möglichkeiten anderer Programmiersprachen wie etwa Perl läßt sich dies unkompliziert mit nur wenigen Codezeilen und rasend schnell schaffen. Unter C wurde hierfür noch keine annähernd so brauchbar Möglichkeit gefunden.

Danke Gerald

Jup, ich denke mal CStringArray wäre als Datentyp ziemlich geeignet, da müsste sich doch irgendein Sortieralgorithmus (quicksort) drauf anwenden lassen? sorry, habe keinen konkreten Code an der Hand

Jup, ich denke mal CStringArray wäre als
Datentyp ziemlich geeignet, da müsste
sich doch irgendein Sortieralgorithmus
(quicksort) drauf anwenden lassen? sorry,
habe keinen konkreten Code an der Hand

Das habe ich versucht. qsort nimmt aber dieses Datenformat nicht ohne weiteres an. Auch die weiteren hierfür notwendigen Parameter sind für mich auch nur auf sehr unverständliche Weise zu handhaben. Ich wundere mich, warum es hierfür nicht etwas einfacheres gibt mit vielleicht weniger mysteriösen Parametern.
Gerald

Hm, ja das kann ich mir vorstellen, das du irgendeine rqsort Funktion nicht ein CString-Array übergeben kannst.
Am besten du schaust dir mal an, was das qsort eigentlich tut und setzt das dann für ein StringArray um.

Das habe ich natürlich schon versucht. Die Dokumentation von VC++ ist jedoch so sparsam, daß das angegebene Spezialbeispiel für die Sortierung von Funktionsparameterstrings mit sehr umständlicher Indizierung und Nebenschritten sich keineswegs einfach auf ein normales Array übersetzen läßt.
Danke
Gerald

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ah, der Thread existiert ja doch noch :smile:
schau mal weiter oben, habe ein neues Topic angelegt