Cvičení č. 3 -- Sort
Napište program, který přečte ze souboru řádky textu a setříděné dle
abecedy je vypíše na standardní výstup.
Program sort
bude mít jeden argument -- název souboru
který má setřídit. V cyklu čte řádky souboru, které si ukládá
do dynamických struktur. Řádky může třídit už při vkládání do dynamických
struktur, nebo je může setřídit až po dočtení vstupního souboru.
Po setřídění program všechny řádky v abecedním pořadí vypíše na obrazovku.
Poznámky
- Pokud uživatel argument nezadá, program vypíše krátkou nápovědu
a skončí s nenulovým statusem.
- Můžete předpokládat, že délka řádku je omezena konstantou.
Pokud je řádek delší, může odmítnout dál třídit.
Délku řádku však musíte kontrolovat a v tom případě program musí
korektně skončit.
- Při jakékoliv chybě musí program vypsat relevantní informace
a korektně se ukončit s nenulovým statusem (nelze číst soubor,
nedostatek paměti, příliš dlouhý řádek,...).
- Používejte anglické řazení, čili můžete porovnávat ASCII hodnoty znaků
řetězce.
- Komentujte. Zejména okomentujte použité datové struktury
a použitý třídící algoritmus.
Body navíc
Pokud bude váš program splňovat všechny následující požadavky,
můžete dostat až +2 body navíc:
- Třídění rychlejší než n^2.
- Při řazení bere v potaz nastavené
locale
(čili např. umí správně třídit českou diakritiku)
-- viz strcoll(3)
.
- Je-li zadán soubor "-", program čte řádky ze standardního vstupu.