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: F12char 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
BTutéž 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.
Jak psát:
Pokyny
Pod to vytvořte proměnnou velikost typu char s hodnotou 'M'.
Na dalším řádku ji vypište pomocí %c:
Velikost: MPod 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: 77Začněte programovat zdarma
5/11