24

在一次采访中,我被问到

printf()使用函数打印引号

我不知所措。即使在他们的办公室里也有一台电脑,他们让我试试看。我试过这样:

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

但正如我怀疑它没有编译。当编译器获得第一个"时,它认为它是字符串的结尾,但事实并非如此。那么我该如何实现呢?

4

9 回答 9

31

尝试这个:

#include <stdio.h>

int main()
{
  printf("Printing quotation mark \" ");
}
于 2012-08-02T06:42:02.720 回答
21

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

\   -   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,并在其前面加上一个(斜线)。

于 2012-08-02T07:10:28.280 回答
14

You have to escape the quotationmark:

printf("\"");
于 2012-08-02T06:41:58.093 回答
9

在 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
于 2012-08-03T08:39:10.327 回答
8

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

printf("And I quote, %cThis is a quote.%c\n", '"', '"');
于 2012-08-02T07:04:37.737 回答
5

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

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

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

于 2012-08-02T06:46:51.153 回答
3

这也有效:

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

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

编辑:根据 Eric Postpischil 的评论,这是一个不依赖 ASCII 的版本:

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

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

于 2012-08-02T08:47:07.210 回答
0

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

printf("\"");
于 2018-03-06T12:47:18.437 回答
0
#include<stdio.h>
int main(){
char ch='"';
printf("%c",ch);
return 0;
}

输出: ”

于 2017-06-01T04:32:47.300 回答