Datový typ Char (Character)
Char je primitivní datový typ používaný k reprezentaci jednoho znaku. Je stavebním kamenem pro všechny textové řetězce a hraje klíčovou roli v mezinárodní komunikaci a lokalizaci softwaru.
1. Reprezentace v paměti
Znaky nejsou v počítači uloženy jako obrázky, ale jako sekvence bitů. Způsob, jakým se číselná hodnota převede na viditelný znak, určuje kódování.
Binární podstata: Pokud uložíme znak `'A'`, procesor v paměti ve skutečnosti vidí binární hodnotu $01000001_2$ (v desítkové soustavě 65).
Velikost: * V jazycích jako C/C++ zabírá obvykle 1 byte (8 bitů), což stačí pro 256 znaků.
—
2. Klíčové standardy kódování
Základní 7bitový kód (rozšířený na 8bitový), který definoval 128 základních znaků.
Obsahuje velká a malá písmena anglické abecedy, číslice 0–9 a řídicí znaky (např. odřádkování).
Omezení: Neobsahuje diakritiku (háčky, čárky) ani jiná písma než latinku.
Unicode (Universal Character Set)
Standard, jehož cílem je sjednotit všechna písma světa (včetně emoji a historických písem).
UTF-8: Nejpopulárnější kódování současnosti. Je proměnlivé délky (1 až 4 byty). Prvních 127 znaků je identických s ASCII, což zajišťuje zpětnou kompatibilitu.
UTF-16: Používá primárně 2 byty pro každý znak.
—
3. Speciální typy znaků
V programování se setkáváme se znaky, které nejsou přímo viditelné nebo mají speciální funkci.
Řídicí znaky (Control Characters)
Původně sloužily k ovládání dálnopisů a tiskáren:
`CR` (Carriage Return) – Návrat vozíku.
`LF` (Line Feed) – Posun o řádek.
`NULL` (Nulový znak) – V jazyce C označuje konec řetězce.
Escape sekvence
Způsob, jak zapsat speciální znaky v kódu pomocí zpětného lomítka:
—
4. Operace se znaky
Protože je `char` vnitřně číslo, lze s ním provádět aritmetické operace:
Inkrementace: Pokud k `'A'` (65) přičteme 1, získáme `'B'` (66).
Porovnávání: Znaky lze řadit (např. `'a' > 'A'` je v ASCII pravdivý výraz, protože malá písmena mají vyšší číselnou hodnotu).
—
5. Char vs. String
Je důležité rozlišovat mezi těmito dvěma pojmy:
Char: Jeden prvek, obvykle v jednoduchých uvozovkách (`'x'`).
String: Kolekce (pole) znaků, obvykle v dvojitých uvozovkách (`„text“`). String je v paměti ukončen buď speciálním znakem (null-terminated), nebo má délku uloženou v hlavičce.
Související články:
Tagy: programming char encoding ascii unicode data-types