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).

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

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

Nebo se registrujte pomocí:

3/7