在一次采访中,我被问到
printf()
使用函数打印引号
我不知所措。即使在他们的办公室里也有一台电脑,他们让我试试看。我试过这样:
void main()
{
printf("Printing quotation mark " ");
}
但正如我怀疑它没有编译。当编译器获得第一个"
时,它认为它是字符串的结尾,但事实并非如此。那么我该如何实现呢?
尝试这个:
#include <stdio.h>
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,并在其前面加上一个(斜线)。
You have to escape the quotationmark:
printf("\"");
在 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
除了转义字符外,您还可以使用 format %c
,并将字符文字用作引号。
printf("And I quote, %cThis is a quote.%c\n", '"', '"');
你必须使用转义字符。这是这个先有鸡还是先有蛋的问题的解决方案:如果我需要它来终止字符串文字,我该如何编写“”?因此,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 上工作。
你应该像这样使用转义字符:
printf("\"");
#include<stdio.h>
int main(){
char ch='"';
printf("%c",ch);
return 0;
}
输出: ”