ccpp:stringliterals

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"

Č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;
}

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: Escape sequences - c++ reference

Ř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.: Podpora češtiny. Bez tohoto nastavení je lepší se českým znakům vyhnout.

  • ccpp/stringliterals.txt
  • Poslední úprava: 2021/10/11 12:49
  • autor: bures