Datový typ char

Char je primitivní datový typ, který uchovává jeden znak. I když jej lidé vnímají jako písmeno (např. 'A'), počítač jej vnitřně ukládá jako celé číslo na základě definovaného kódování.

1. Charakteristika a velikost v paměti

Velikost typu char se liší podle použitého programovacího jazyka a kódování:

C / C++: Tradičně má velikost 1 bajt (8 bitů), což umožňuje reprezentovat 256 různých hodnot (standard ASCII).

Java / C#: Má velikost 2 bajty (16 bitů), protože tyto jazyky používají kódování Unicode (UTF-16) k podpoře mezinárodních znakových sad.

—

2. Kódování znaků

Protože počítač pracuje pouze s čísly, existují standardy (mapy), které říkají, jaké číslo odpovídá jakému znaku:

ASCII (American Standard Code for Information Interchange)

Nejstarší standard využívající 7 nebo 8 bitů.

Obsahuje pouze latinku, číslice a základní symboly.

Příklad: Znak 'A' má v ASCII hodnotu 65 ($01000001_2$).

Unicode

Moderní standard, který se snaží pokrýt všechny znaky všech světových jazyků včetně emotikonů.

UTF-8: Nejrozšířenější kódování na webu. Je zpětně kompatibilní s ASCII (prvních 127 znaků je stejných).

UTF-16: Používá fixní 2 bajty pro většinu běžných znaků.

—

3. Práce s typem char v kódu

Většina programovacích jazyků používá pro zápis typu char jednoduché uvozovky (apostrofy), na rozdíl od řetězců (String), které používají dvojité.

char pismeno = 'G';
char cislice = '5';
char specialni = '\n'; // Speciální znak pro nový řádek (Escape sekvence)

—

4. Escape sekvence

Některé znaky nelze zapsat přímo, protože mají speciální význam nebo jsou neviditelné. Používá se pro ně zpětné lomítko `\`:

Sekvence	Význam
`\n`	Nový řádek (Newline)
`\t`	Tabulátor
`\\`	Zpětné lomítko
`\'`	Jednoduchá uvozovka
`\0`	Nulový znak (označuje konec řetězce v jazyce C)

—

5. Vztah k typu String

Zatímco char představuje pouze jeden prvek, String (řetězec) je v podstatě pole (array) složené z jednotlivých znaků typu char.

Související články:

Přehled datových typů

Binární soustava a bity

Kódování Unicode a UTF-8

Tagy: tag>programming data-types char ascii unicode encoding