Anführungszeichen im Text
Die doppelten Anführungszeichen zeigen, wo ein Text beginnt und wo er endet. Was aber, wenn du ein Anführungszeichen ausgeben willst, zum Beispiel in einem Gespräch? Das hier funktioniert nicht:
#include <stdio.h>
int main(void) {
printf("Mama rief: "Essen ist fertig!"\n");
return 0;
}Der Compiler führt das Programm nicht aus und zeigt eine Fehlermeldung:
main.c:4:25: error: expected ')'
4 | printf("Mama rief: "Essen ist fertig!"\n");
| ^
main.c:4:11: note: to match this '('
4 | printf("Mama rief: "Essen ist fertig!"\n");
| ^
1 error generated.Wie du Fehlermeldungen liest, lernst du später in dieser Lektion. Vorerst genügt es zu wissen, warum diese hier erschienen ist: Der Compiler liest den Text nur bis zum zweiten Anführungszeichen, "Mama rief: ", und glaubt, dass der Text dort endet. Direkt danach findet er das Wort Essen, mit dem er nichts anfangen kann.
Um ein Anführungszeichen in einen Text zu setzen, schreibst du einen Backslash davor: \". Der Backslash sagt dem Compiler, dass dieses Anführungszeichen den Text nicht beendet, sondern nur ein Zeichen ist, das ausgegeben wird:
printf("Mama rief: \"Essen ist fertig!\"\n");Das gibt Folgendes aus:
Mama rief: "Essen ist fertig!"Ein Paar Zeichen mit Backslash kennst du schon: \n. Ein Backslash gibt dem Zeichen danach immer eine besondere Bedeutung. Und wenn du den Backslash selbst ausgeben willst, schreibst du ihn doppelt, \\:
printf("Hurra! \\o/\n");Das gibt Folgendes aus:
Hurra! \o/Ein Apostroph ' braucht keinen Backslash: printf("Ich bin's!\n"); funktioniert so, wie es ist. Verwende aber keine einfachen Anführungszeichen anstelle der doppelten. printf('Hallo!\n'); endet mit einem Fehler, denn einfache Anführungszeichen bedeuten in C etwas anderes: ein einzelnes Zeichen, wie du in der nächsten Lektion sehen wirst.
Vorsicht auch bei typografischen Anführungszeichen wie „ und “, die Textverarbeitungen automatisch erzeugen. Für C sind sie völlig andere Zeichen als ". In einem Text kannst du sie verwenden, und sie werden ohne Backslash ausgegeben, aber sie können keinen Text beginnen oder beenden. Sei also vorsichtig, wenn du Code aus einem Dokument kopierst, das gerade Anführungszeichen in typografische verwandelt hat: Der Compiler meldet dann unexpected character <U+201C>.
So schreibst du es:
Anweisungen
- 1
Führe das Programm aus. Setze dann
Essen ist fertig!in Anführungszeichen, damit das Programm Folgendes ausgibt:Mama rief: "Essen ist fertig!" - 2
Füge darunter mit einem weiteren
printfToms Antwort hinzu, damit das Programm Folgendes ausgibt:Mama rief: "Essen ist fertig!" Tom antwortete: "Ich komme gleich!"