Porovnání textových řetězců

Téma: Ukazatele

Procvičované učivo: ukazatele, práce s textovými řetězci, funkce, cykly

Napište v jazyku C funkci int porovnej(char *t1, char *t2), která porovná předané textové řetězce a vrátí -1, pokud je první řetězec menší než druhý, 0, pokud jsou řetězce shodné, nebo 1, pokud je druhý řetězec menší než první. Při práci s textovými řetězci používejte výhradně ukazatele, operátor dereference a pointerovou aritmetiku.

Porovnávání řetězců by mělo být lexikografické, tj. obdobné uspořádání slov ve slovníku. Budou tedy porovnávány jednotlivé odpovídající si dvojice znaků (i-tý znak prvního řetězce s i-tým znakem druhého řetězce) počínaje prvními znaky obou řetězců, první rozdílná dvojice znaků pak určí výsledek porovnání obou řetězců. Tento způsob porovnání textových řetězců plně odpovídá funkci strcmp.

Příklad výstupu:

Slovo "ahoj" je větší než slovo "abcde". 

Povolené knihovny: stdio.h, stdlib.h

Alternativy úlohy: vytvoření jiných funkcí ze string.h: strchr, strrchr...


Creative Commons License Sbírka úloh z jazyka C. © Katedra informatiky Univerzity Palackého v Olomouci, 2009.
Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.