2016-09-28 75 views
0

無論何時我們需要使用反斜槓(轉義字符)打印雙引號,我們必須在打開引號並關閉它或僅關閉一次的同時使用它兩次。C語言的雙引號

即是這樣的:

printf(" \" \" "); 

或像這樣:

printf(" \" " "); 

哪一個是正確的?

我需要打印(「Whatever!」 He said 「The Sparrows are flying again.」

+0

類似問題http://stackoverflow.com/questions/9582781/c-sharp-two-double-quotes – code11

+0

如果同樣要打印的括號,你必須使用'的printf(「\(\ 「什麼!」他說道,「麻雀又飛了。」「)」);' –

+0

'printf(「\」「」);'應該生成一個編譯器錯誤。 – chux

回答

1

對於每一個雙引號你願意,你既需要反斜線和雙引號的字符串中出現。

0

您可以將您希望忽略的任何引用作爲代碼進行轉義並用作字符串。 所以你的情況會是這樣的:

printThis(「\"Whatever!\」 He said \「The Sparrows are flying again.\」"); 
+0

哦,明白了!謝謝:) –

+0

'\「'不是一個定義的轉義序列,OP使用的是明智的引號。 – chux

+0

我會爭論的OP從來沒有說過任何關於「聰明的引號」的東西,即使這是出現在文章中的時候,MSWord也是這樣的方便的東西,但是,如果OP詢問了精明的引語,那麼你會是正確的 – durbnpoisn

0

反斜槓是什麼讓你使用雙引號和其他特殊charachters。對於每一個,你應該使用單反斜線:

printf("\"") --> " 
printf("\'") --> ' 
printf("\\") --> \ 

所以printf("\「Whatever!\」 He said \「The Sparrows are flying again.\」")會給你所需輸出

編輯:作爲Chux提到,是沒有正規的雙引用",在這種情況下,不需要反斜槓,printf("「Whatever!\」 He said \「The Sparrows are flying again.」")就足夠了。 ,使用反斜槓不會導致即使雙引號「智能引號」

+0

'\「'不是一個定義的轉義序列,OP使用的是明智的引號 – chux

+0

謝謝。沒有看到 – CIsForCookies

+0

尷尬後置代碼,編譯與「未知的轉義序列:'\ 224'」的警告。令我懊惱的是,我經常犯同樣的錯誤。順便說一句,即使雙引號是C語言規範不支持的「引號」,反斜槓也不會引起錯誤行爲。 – chux

0

這是一個雙引號由C編譯器識別的錯誤行爲:"。以下都不是:「」。看到不同?

因此,你的代碼應該閱讀,簡單地說:

printf("「Whatever!」 He said 「The Sparrows are flying again.」\n"); 

如果不希望使用「智能」引號,你需要改變常規的報價和逃生所有的人都

printf("\"Whatever!\" He said \"The Sparrows are flying again.\"\n");