{{indexmenu_n>6}} ====== 6 - Textové řetězce ====== * [[courses:b0b36prp:internal:tutorialinstruction:05|pro vyučující]] ===== Cíle cvičení ===== - Textové řetězce. ==== Materiály ==== * [[https://en.wikipedia.org/wiki/ASCII|ASCII tabulka]] * Délka textového řetězce: [[https://en.cppreference.com/w/cpp/string/byte/strlen|strlen]] * Porovnání řetězců: [[https://en.cppreference.com/w/c/string/byte/strcmp|strcmp]], [[https://en.cppreference.com/w/c/string/byte/strncmp|strncmp]] ===== Textové řetězce ===== * Definujte textový řetězec "Everybody likes PRP" a vypište ho. Následně vypište z tohoto řetězce pouze "likes PRP" a nakonec řetězec změňte na "Tom likes PRP" a vypište ho. Přemýšlejte, jak to provést nejúsporněji. * Naprogramujte funkce strlen, strcmp a strncmp. === cat === * Naprogramujte zjednodušenou verzi programu ''cat''. Načtěte vstup ze stdin a zase ho vypište na výstup (stdout). echo "Hello world" | cat Hello world * Upravte program tak, aby vypsal vstup až za první mezerou: echo "Hello world" | cat2 world * Vypište každe slovo ze vstupu na samostatný řádek (za oddělovače slov považujte mezeru, konec řádku ''\n'' a tabulátor ''\t''). echo "Hello world and hello again " | words Hello world and hello again * Nyní zkuste totéž, ale za každé slovo vypište i jeho délku a slova 'and' a 'or' nejak označte. echo "Hello world and hello again " | words-len Hello 5 world 5 and 3 <-- hello 5 again 5 === tr === * Načtěte vstup a vypište ho s malými písmeny přepsanými na velké a naopak echo "Hello world" | cap ===== hELLO WORLD * Nyní zkuste zjednodušenou verzi programu ''tr''. Program bude mít zadány dva argumenty na příkazové řádce, které budou sloužit jako předpis pro překlad znaků viz. následující příklad: echo "Hello world" | tr 'Hl' 'Xk' Xekko workd echo "Hello world" | tr 'dweji' '01234' H2llo 1orl0 * Zkuste si pospojovat dnešní programy. Např.: echo "Hello world and hello again " | words | cap hELLO WORLD AND HELLO AGAIN === Feedback === Pro cvičení Jakuba Dupáka: [[https://jakubdupak.com/prp-feedback/]]