如何在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("\"");