webentwicklung-frage-antwort-db.com.de

Wie kann ich ein Anführungszeichen in C drucken?

In einem Interview wurde ich gefragt

Drucken Sie ein Anführungszeichen mit der Funktion printf()

Ich war überwältigt. Sogar in ihrem Büro gab es einen Computer, und sie sagten mir, ich solle es versuchen. Ich habe es so versucht:

void main()
{
    printf("Printing quotation mark " ");
}

aber wie ich vermutete, kompiliert es nicht. Wenn der Compiler den ersten " erhält, glaubt er, es sei das Ende von string, was nicht der Fall ist. Wie kann ich das erreichen?

20
Mistu4u

Versuche dies:

#include <stdio.h>

int main()
{
  printf("Printing quotation mark \" ");
}
25
Sune Trudslev

Ohne Backslash haben Sonderzeichen eine natürliche besondere Bedeutung. Mit einem Backslash wird gedruckt, wie sie erscheinen.

\   -   escape the next character
"   -   start or end of string
’   -   start or end a character constant
%   -   start a format specification
\\  -   print a backslash
\"  -   print a double quote
\’  -   print a single quote
%%  -   print a percent sign

Die Aussage 

printf("  \"  "); 

gibt Ihnen die Anführungszeichen aus. Sie können diese Sonderzeichen\a,\b,\f,\n,\r,\t und \v auch mit einem vorangestellten (Schrägstrich) drucken.

16
Angus

Sie müssen das Anführungszeichen verlassen:

printf("\"");
14
halex

In der Programmiersprache C wird \ verwendet, um einige der Sonderzeichen zu drucken, die in C eine besondere Bedeutung haben. Diese Sonderzeichen sind unten aufgeführt

\\ - Backslash
\' - Single Quotation Mark
\" - Double Quatation Mark
\n - New line
\r - Carriage Return
\t - Horizontal Tab
\b - Backspace
\f - Formfeed
\a - Bell(beep) sound
8
rashok

Neben dem Escape-Zeichen können Sie auch das Format %c und das Zeichenliteral für ein Anführungszeichen verwenden.

printf("And I quote, %cThis is a quote.%c\n", '"', '"');
7
jxh

Sie müssen escaping von Zeichen verwenden. Es ist eine Lösung dieses Henne-und-Ei-Problems: Wie schreibe ich ein ", wenn ich es brauche, um ein Zeichenkettenliteral zu beenden?" 

printf("this is a \"quoted string\"");

Sie können auch "\" verwenden, um Sonderzeichen wie "\ n", "\ t", "\ a" einzugeben, "\" selbst einzugeben: "\\" usw.

4
Dmytro Sirenko

Dieses funktioniert auch:

printf("%c\n", printf("Here, I print some double quotes: "));

Wenn Sie jedoch beabsichtigen, es in einem Interview zu verwenden, stellen Sie sicher, dass Sie erklären können, was es bewirkt.

EDIT: Nach Eric Postpischils Kommentar folgt eine Version, die nicht auf ASCII angewiesen ist:

printf("%c\n", printf("%*s", '"', "Printing quotes: "));

Die Ausgabe ist nicht so schön und immer noch nicht zu 100% portabel (wird bei einigen hypothetischen Codierungsschemata durchbrechen), aber es sollte mit EBCDIC funktionieren.

3
ugoren
#include<stdio.h>
int main(){
char ch='"';
printf("%c",ch);
return 0;
}

Ausgabe: "

0
Digres

sie sollten ein Fluchtzeichen wie folgt verwenden: 

printf("\"");
0
kamal malhotra