c strukt ordnen

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

c strukt ordnen

Beitragvon schning » Mo 07 Apr, 2003 02:05

hi kann mir jemand bei der sortierung meines struckts helfen???

Das Problem:

ich habe ein strukt das "buecherliste " heist ! ! von diesem strukt was unter anderem autor und isbn nummer und titel beinhaltet, habe ich
mir 100 stueck angelegt "Buchlist[100]" diese liste ist auch schon gefuellt !!!
nun zu meinem problem ich moechte jetzt die "BuchList[100]" nach dem tietel ordenen!!!! --->BuchList[zaehler].Titel<--- wie ordne ich diese liste alphabetisch nach dem tietel ??

danke im vorraus !!

mfg schning
schning
 

RE: c strukt ordnen

Beitragvon mad » Mo 07 Apr, 2003 19:15

falls die sortier-funktion nicht grad selbst ausprogrammieren musst,
nimm einfach qsort() aus der ansi c lib.

void qsort(void* base, size_t n, size_t size, int (*cmp)(const void*, const void*));

du musst da nur noch ne funktion schreiben, die zwei strings vergleicht
und irgendwas negatives zurueckgibt falls der erste string "kleiner" als der zweite ist,
bzw. irgendwas positives wenn "groesser" .. bei gleichheit gibst 0 zurzueck ..
(strcmp() macht zb genau das ;)

bsp.

static int cmp ( const void *a, const void *b)
{
const char * const *s1 = a;
const char * const *s2 = b;
return strcmp(*s1, *s2);
}

int main(void)
{
const char *text[] =
{
"foo",
"bar",
"foobar",
"barfoo",
"bladasel"
};

size_t i;
const size_t textcnt = sizeof text / sizeof *text;

puts("original");
for(i=0 ; i<textcnt ; i++)
puts(text[i]);

qsort(text, textcnt, sizeof *text, cmp);

puts("
sortiert");
for(i=0 ; i<textcnt ; i++)
puts(text[i]);

return 0;
}


hth,
mad.
mad
 

RE: c strukt ordnen

Beitragvon brucedickinson » Mo 28 Apr, 2003 10:40

oh mannnnn
wieso habe ich keinen job?
diese koffer bringen nichts auf die reihe und haben tortzdem einen job

also wirklichhhhhhhhhhhhh
brucedickinson
 


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste