簡體   English   中英

如何將雙引號放入字符串文字中?

[英]How can I get double quotes into a string literal?

我使用printf()語句創建了以下輸出:

printf("She said time flies like an arrow, but fruit flies like a banana.");

但我想將實際報價放在雙引號中,所以輸出是

她說“光陰似箭,果蠅如蕉”。

而不會干擾用於將字符串文字包裝在printf()語句中的雙引號。

我怎樣才能做到這一點?

用反斜杠轉義引號:

printf("She said \"time flies like an arrow, but fruit flies like a banana\"."); 

您可以在字符串文字中使用特殊的轉義字符,這些字符用前導反斜杠表示。

值得慶幸的是,在 C++11 中,還有使用原始字符串文字的更令人愉悅的方法。

printf("She said \"time flies like an arrow, but fruit flies like a banana\".");

變成:

printf(R"(She said "time flies like an arrow, but fruit flies like a banana".)");

關於在開始引號之后和結束引號之前添加括號,請注意它們幾乎可以是最多 16 個字符的任意組合,有助於避免組合出現在字符串本身中的情況。 具體來說:

基本源字符集的任何成員,除了:空格、左括號(、右括號)、反斜杠和代表水平制表符、垂直制表符、換頁符和換行符的控制字符”(N3936 §2.14.5 [lex .string] 語法)和“最多 16 個字符”(第 2.14.5/2 節)

它使這個短字符串更清晰的程度可能是有爭議的,但是當用於更長的格式字符串(如 HTML 或 JSON)時,它無疑要清晰得多。

對於此輸入:- 我保證“努力工作”並“精通”編程。 cout<<"我保證'努力工作'並變得'精通'"<<"編程。"; 有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM