Diskuze: qsort - razeni stringu

C++ C a C++ qsort - razeni stringu

Avatar
mnauik
Člen
Avatar
mnauik:

Mam seradit pole stringu, coz delam qsortem, ale nekde je chyba, moje reseni:

qsort(poleStringu, strlen(poleStringu),sizeof(char), &compare);
int compare(const void *a, const void *b)
{   if(*(const char *)a>*(const char *)b)
return 1;

if(*(const char *)a==*(const char *)b)
return 0;

else return -1;

}
Odpovědět 1.6.2014 9:42
minusuj mě, ale zdůvodni to ;)
Avatar
Odpovídá na mnauik
Lukáš Hruda (Luckin):

Funkce compare porovnává jenom první znak.

 
Nahoru Odpovědět 1.6.2014 11:02
Avatar
mnauik
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
mnauik:

aha, ja se moc v C nevyznam, jak teda zaridit, aby to porovnalo znak po znaku, v pripade, ze prvni znaky jsou stejne? Je mi jasne, ze dale se to porovnava, kdyz compare je 0. Ale netusim, jak to udelat.

Nahoru Odpovědět 1.6.2014 11:48
minusuj mě, ale zdůvodni to ;)
Avatar
Odpovídá na mnauik
Libor Šimo (libcosenior):

Nebolo by lepšie použiť?

int strcmp(char *s1, char *s2);

Vráti 0, ak sú reťazce s1 a s2 rovnaké. Vráti záporné číslo, ak je s1 lexikograficky menší než s2 a kladné číslo v opačnom prípade.
Nahoru Odpovědět 1.6.2014 12:01
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
mnauik
Člen
Avatar
mnauik:

Dekuji, to je ono.

Nahoru Odpovědět 1.6.2014 21:59
minusuj mě, ale zdůvodni to ;)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.