Кавычки в тексте
Двойные кавычки показывают, где текст начинается и где заканчивается. А что делать, если нужно вывести саму кавычку, например в разговоре? Так не получится:
#include <stdio.h>
int main(void) {
printf("Мама крикнула: "Обед готов!"\n");
return 0;
}Компилятор не запускает программу и показывает сообщение об ошибке:
main.c:4:41: error: expected ')'
4 | printf("Мама крикнула: "Обед готов!"\n");
| ^
main.c:4:11: note: to match this '('
4 | printf("Мама крикнула: "Обед готов!"\n");
| ^
1 error generated.Читать сообщения об ошибках вы научитесь позже на этом уроке. Пока достаточно понять, почему появилось это: компилятор читает текст только до второй кавычки, "Мама крикнула: ", и считает, что текст на этом закончился. Сразу за ней он находит слово Обед, в котором не видит смысла.
Чтобы поместить кавычку внутрь текста, поставьте перед ней обратную косую черту: \". Она сообщает компилятору, что эта кавычка не заканчивает текст, а является просто символом, который нужно вывести:
printf("Мама крикнула: \"Обед готов!\"\n");Выведется:
Мама крикнула: "Обед готов!"Одну пару символов с обратной косой чертой вы уже знаете: \n. Обратная косая черта всегда придаёт символу после неё особый смысл. А если нужно вывести саму обратную косую черту, напишите её дважды, \\:
printf("Ура! \\o/\n");Выведется:
Ура! \o/Апостроф ' обратной косой черты не требует: printf("It's me!\n"); работает как есть. Но не заменяйте двойные кавычки одинарными. printf('Привет!\n'); заканчивается ошибкой, потому что одинарные кавычки в C значат другое: один символ, как вы увидите на следующем уроке.
Остерегайтесь также изогнутых кавычек “ и ”, которые текстовые редакторы ставят автоматически. Для C это совершенно другие символы, не ". Внутри текста их использовать можно, они выводятся без обратной косой черты, но начинать или заканчивать ими текст нельзя. Поэтому будьте осторожны, когда копируете код из документа, в котором прямые кавычки превратились в изогнутые: тогда компилятор сообщит unexpected character <U+201C>.
Задание
- 1
Запустите программу. Затем поставьте кавычки вокруг
Обед готов!, чтобы программа выводила:Мама крикнула: "Обед готов!" - 2
Ниже добавьте ответ Тимура ещё одним
printf, чтобы программа выводила:Мама крикнула: "Обед готов!" Тимур ответил: "Уже иду!"