Archiv verlassen und diese Seite im Standarddesign anzeigen : string arry alphabetisch sortieren?
guuuuude !!!
wie kann ich ein string arry alphabetisch sortieren?
danke
michael.sprick
15-01-2005, 13:14
Sprache????
RapidMax
16-01-2005, 15:47
Kein Deutsch, das mal sicher...
tracer87
16-01-2005, 16:06
ich wette c :)
ich würds einfach mit bubblesort oder so machen :)
ist einfach und schnell programmiert :D
guuuuude !!!
wie kann ich ein string array alphabetisch sortieren?
danke
LOL ja voll vergessen..... ja C ist die sprache...*g*
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int compare(const void* left,const void* right)
{
return strcmp(*(char**)left,*(char**)right);
}
int main()
{
char *array[3] = { "Hello World","Hallo Welt","WhatEver" };
int i;
qsort(array,3,sizeof *array,compare);
for(i = 0;i < 3;i++)
printf("%s\n",array[i]);
return 0;
}
Jetzt ist aber Groß/Kleinschreibung wichtig, wenn das nicht entscheidend sein soll, dann mußt du die compare Funktion selber schreiben, andere Möglichkeit (wenn auch nicht C Standard) man strcasecmp (http://www.rt.com/man/strcasecmp.3.html) (einfach strcmp ersetzen).
Warum noch die Extrafunktion? Es reicht ein einfaches
qsort(array,3,sizeof(*array),strcmp)
Und wenn dich die Warnung stört, mach ein
qsort(array,3,sizeof(*array),(int(*)(const void*,const void*))strcmp)
Warum noch die Extrafunktion?
Der Wrapper ist nötig.
http://www.google.de/groups?selm=27264%40dog.ee.lbl.gov&output=gplain
(alles interessant, wichtig hier aber speziell die letzte 'Seite').
Ich denke der Link macht es noch etwas klarer
http://www.google.de/groups?selm=bhfjus%24k7d%241%40elf.eng.bsdi.com&output=gplain
In der Errata-List zu K&R 2 steht auch noch was dazu (dort wurde nämlich auch nur strcmp gecastet).
Aber von allem das beste Argument: Es funktioniert einfach nicht.
Vielleicht bei dir, bei mir schon nicht mehr.
Ja, benötigt werden von der Sortier-Funktion Pointer auf die Objekte und das sind hier char-Pointer; insgesammt also Pointer auf char-Pointer.
Wirklich erstaunlich, dass es mit dem gcc sogar ohne Fehlermeldung funktioniert, auch wenn eine Indirektion fehl :eek:
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.