IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: qsort - razeni stringu

Aktivity
Avatar
mnauik
Člen
Avatar
mnauik:1.6.2014 9:42

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
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na mnauik
Lukáš Hruda:1.6.2014 11:02

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
mnauik:1.6.2014 11:48

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):1.6.2014 12:01

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:1.6.2014 21:59

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.