Uvozovky v textu
Dvojité uvozovky ukazují, kde text začíná a kde končí. Co když ale chcete uvozovky vypsat, třeba v rozhovoru? Takhle to nejde:
#include <stdio.h>
int main(void) {
printf("Máma volala: "Večeře je hotová!"\n");
return 0;
}Překladač program nespustí a ukáže chybovou hlášku:
main.c:4:28: error: expected ')'
4 | printf("Máma volala: "Večeře je hotová!"\n");
| ^
main.c:4:11: note: to match this '('
4 | printf("Máma volala: "Večeře je hotová!"\n");
| ^
1 error generated.Chybové hlášky se naučíte číst později v této lekci. Teď stačí vědět, proč tahle vznikla: překladač čte text jen po druhou uvozovku, "Máma volala: ", a myslí si, že tam text končí. Hned za ním najde slovo Večeře, které mu nedává smysl.
Uvozovku uvnitř textu napíšete tak, že před ni dáte zpětné lomítko: \". Zpětné lomítko překladači říká, že tahle uvozovka text neukončuje a je to jen znak, který se má vypsat:
printf("Máma volala: \"Večeře je hotová!\"\n");Vypíše:
Máma volala: "Večeře je hotová!"Jednu dvojici znaků se zpětným lomítkem už znáte: \n. Zpětné lomítko vždycky dává znaku za sebou zvláštní význam. A když chcete vypsat samotné zpětné lomítko, napište ho dvakrát, \\:
printf("Hurá! \\o/\n");Vypíše:
Hurá! \o/Jednoduché uvozovky (apostrofy) místo dvojitých nepoužívejte. printf('Ahoj!\n'); skončí chybou, protože jednoduché uvozovky znamenají v C něco jiného: jeden znak, jak uvidíte v příští lekci.
Pozor také na české uvozovky „ a “. Pro C jsou to úplně jiné znaky než ". Uvnitř textu je klidně můžete použít a vypíšou se bez zpětného lomítka, ale text jimi začít ani ukončit nejde. Když proto kopírujete kód z dokumentu, který rovné uvozovky sám změnil na české, zkontrolujte je: s „ ohlásí překladač chybu unexpected character <U+201E> (neočekávaný znak).
Jak psát:
Pokyny
Spusťte program. Pak dejte text Večeře je hotová! do uvozovek, aby program vypsal:
Máma volala: "Večeře je hotová!"Dalším printf pod ním přidejte Tomášovu odpověď, aby program vypsal:
Máma volala: "Večeře je hotová!"
Tomáš odpověděl: "Už běžím!"Začněte programovat zdarma
3/7