===== Řetězcové literály ===== Jsou typicky používané ve funkcích očekávající parametry jako text. Vždy začíná a končí uvozovkou ''"'' a **nemůže uvnitř obsahovat zalomení řádku**. "Ahoj svete" "Ahoj, jak se mas?" // Toto je neplatný řetězec! "Prvni radek, druhy radek" ==== Řetezce jako konstanty ==== Často si chceme daný řetězec nadefinovat jako konstantu, můžeme tak udělat pomocí datového typu ''char*''. int main() { const char* pozdrav = "Hello world!"; printf("%s\n", pozdrav); return 0; } ==== Escape sekvence ==== Pokud chceme v řetězci obsáhnout znaky, které mají speciální význam, jako třeba znak uvozovky ("), která ohraničuje řetězec. Musíme použít tzv. escape sekvenci. Dalším příkladem může být apostrof (') zapsaný jako znakový literál. Escape sekvence začíná znakem zpětné lomeno (\), za kterým následuje požadovaný znak, nebo řídící sekvence. === Příklady escape sekvencí === ^ Escape sekvence ^ význam ^ ^ \n | nová řádka | ^ \t | tabulátor | ^ \" | uvozovka uvnitř řetězce | ^ \' | apostrof jako znakový literál | ^ \\\\ | zpětné lomeno | "Jeden radek\nDruhyRadek\n" "Cesta k systemu windows je: C:\\Windows\\System32" "Citat: \"Dvakrat mer a jednou rez\"." Více: [[https://en.cppreference.com/w/cpp/language/escape|Escape sequences - c++ reference]] ==== Podpora češtiny ==== Řetezce používají pouze rozšířenou ASCII kódovací tabulku, proto je pro podporu českých znaků potřeba nastavit programu správné národnostní nastavení, jinak se budou diakritické znaky zobrazovat špatně. Viz.: [[ccpp:locales|Podpora češtiny]]. Bez tohoto nastavení je lepší se českým znakům vyhnout.