C语言的双引号
无论何时我们需要使用反斜杠(转义字符)打印双引号,我们必须在打开引号并关闭它或仅关闭一次的同时使用它两次。C语言的双引号
即是这样的:
printf(" \" \" ");
或像这样:
printf(" \" " ");
哪一个是正确的?
我需要打印(“Whatever!” He said “The Sparrows are flying again.”
)
对于每一个双引号你愿意,你既需要反斜线和双引号的字符串中出现。
您可以将您希望忽略的任何引用作为代码进行转义并用作字符串。 所以你的情况会是这样的:
printThis(“\"Whatever!\” He said \“The Sparrows are flying again.\”");
哦,明白了!谢谢:) –
'\“'不是一个定义的转义序列,OP使用的是明智的引号。 – chux
我会争论的OP从来没有说过任何关于“聪明的引号”的东西,即使这是出现在文章中的时候,MSWord也是这样的方便的东西,但是,如果OP询问了精明的引语,那么你会是正确的 – durbnpoisn
反斜杠是什么让你使用双引号和其他特殊charachters。对于每一个,你应该使用单反斜线:
printf("\"") --> "
printf("\'") --> '
printf("\\") --> \
等
所以printf("\“Whatever!\” He said \“The Sparrows are flying again.\”")
会给你所需输出
编辑:作为Chux提到,”
是没有正规的双引用"
,在这种情况下,不需要反斜杠,printf("“Whatever!\” He said \“The Sparrows are flying again.”")
就足够了。 但,使用反斜杠不会导致即使双引号“智能引号”
'\“'不是一个定义的转义序列,OP使用的是明智的引号 – chux
谢谢。没有看到 – CIsForCookies
尴尬后置代码,编译与“未知的转义序列:'\ 224'”的警告。令我懊恼的是,我经常犯同样的错误。顺便说一句,即使双引号是C语言规范不支持的“引号”,反斜杠也不会引起错误行为。 – chux
这是一个双引号由C编译器识别的错误行为:"
。以下都不是:“”
。看到不同?
因此,你的代码应该阅读,简单地说:
printf("“Whatever!” He said “The Sparrows are flying again.”\n");
如果不希望使用“智能”引号,你需要改变常规的报价和逃生所有的人都 :
printf("\"Whatever!\" He said \"The Sparrows are flying again.\"\n");
类似问题http://stackoverflow.com/questions/9582781/c-sharp-two-double-quotes – code11
如果同样要打印的括号,你必须使用'的printf(“\(\ “什么!”他说道,“麻雀又飞了。”“)”);' –
'printf(“\”“”);'应该生成一个编译器错误。 – chux