如何在C中打印引号?

在接受采访时我被问到了

使用printf()函数打印引号

我不堪重负。 即使在他们的办公室里也有一台电脑,他们告诉我试一试。 我试过这样的:

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

但我怀疑它不编译。 当编译器获得第一个"它认为它是字符串的结尾时,它不是。所以我怎么能实现这一点?

试试这个:

 #include  int main() { printf("Printing quotation mark \" "); } 

没有反斜杠,特殊字符具有自然的特殊含义。 使用反斜杠,它们会在出现时打印。

 \ - 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 

该声明

 printf(" \" "); 

会打印出报价。 您还可以使用前面的(斜杠)打印这些特殊字符\ a,\ b,\ f,\ n,\ r,\ t和\ v。

你必须逃避引号:

 printf("\""); 

除了转义字符外,您还可以使用格式%c ,并使用字符文字作为引号。

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

在C编程语言中, \用于打印一些在C中具有特殊含义的特殊字符。下面列出了这些特殊字符

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

你必须使用转义字符。 这是解决这个鸡蛋问题的方法:如何编写一个“,如果我需要它来终止字符串文字?那么,C创建者决定使用一个特殊的字符来改变下一个字符的处理:

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

您也可以使用’\’输入特殊符号,如“\ n”,“\ t”,“\ a”,输入’\’本身:“\\”等等。

这个也有效:

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

但如果您计划在面试中使用它,请确保您可以解释它的作用。

编辑 :继Eric Postpischil的评论之后,这里有一个不依赖于ASCII的版本:

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

输出不是那么好,它仍然不是100%可移植的(会破坏一些假设的编码方案),但它应该适用于EBCDIC。

 #include int main(){ char ch='"'; printf("%c",ch); return 0; } 

输出:“

你应该使用这样的转义字符:

 printf("\"");