Znaky

Třetí základní datový typ je char (z anglického character, znak). Do proměnné tohoto typu se vejde jeden znak: písmeno, číslice, interpunkční znaménko nebo mezera. Znak píšete do jednoduchých uvozovek a vypíšete ho pomocí %c:

char velikost = 'M';
char rada = 'F';
printf("Velikost: %c\n", velikost);
printf("Sedadlo: %c%d\n", rada, 12);

Vypíše:

Velikost: M
Sedadlo: F12

char se hodí všude, kde stačí jeden znak: velikost trička, řada v kině, písmeno třídy (7.B) nebo odpověď 'a' či 'n'.

Pozor na uvozovky. V jednoduchých uvozovkách je jeden znak: 'M'. Ve dvojitých uvozovkách je text, i kdyby měl jen jedno písmeno: "M". Text je v C něco jiného než znak a budete s ním pracovat v lekci o řetězcích. Když se pokusíte uložit text do proměnné typu char, program se nepřeloží:

#include <stdio.h>

int main(void) {
    char velikost = "M";
    printf("Velikost: %c\n", velikost);
    return 0;
}

Překladač ohlásí:

main.c:4:10: error: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char[2]' [-Wint-conversion]

Hláška vypadá hrozivě, ale říká jen to, že text "M" do proměnné typu char uložit nejde. Jeden znak patří do jednoduchých uvozovek: 'M'.

V počítači je každý znak uložený jako číslo, takzvaný kód znaku. 'A' má kód 65, 'B' 66 a tak dál podle abecedy. I číslice v uvozovkách je znak s vlastním kódem: '7' je 55, ne 7. Kód uvidíte, když znak vypíšete pomocí %d:

char pismeno = 'A';
printf("%c má kód %d\n", pismeno, pismeno);
printf("%c\n", pismeno + 1);

Vypíše:

A má kód 65
B

Tutéž hodnotu vypíše %c jako znak a %d jako jeho kód. A pismeno + 1 je 66, což je kód písmena B. To se vám bude hodit, až budete pracovat s textem.

Teď znáte tři základní datové typy jazyka C: int, double a char. C má ještě několik dalších, třeba pro hodně velká čísla, ale v tomto kurzu je potřebovat nebudete. V další lekci poznáte ještě jeden typ, pro pravdu a nepravdu.

Pokyny

Pod to vytvořte proměnnou velikost typu char s hodnotou 'M'.

Na dalším řádku ji vypište pomocí %c:

Velikost: M

Pod to vypište velikost ještě jednou, jako znak i jako jeho kód. Použijte jeden printf s %c a %d a proměnnou velikost uveďte dvakrát:

Kód znaku M: 77

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

5/11