c++ 我怎样把双引号引到字符串中?

new9mtju  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(201)

我使用printf()语句创建了以下输出:

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

但我想把实际的引号放在双引号中,所以输出为
她说"时光飞逝如箭,而水果飞逝如香蕉"。
而不干扰用于在printf()语句中将字符串文字括起来的双引号。
我该怎么做呢?

q3aa0525

q3aa05251#

用反斜杠转义引号:

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

有一些特殊的escape characters可以在字符串常量中使用,它们用一个前导反斜杠表示。

tkclm6bt

tkclm6bt2#

值得庆幸的是,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] grammar)和"最多16个字符"(§ 2.14.5/2)
它能使短字符串清晰到什么程度还有待商榷,但当用于HTML或JSON等较长的格式化字符串时,它无疑清晰得多。

epfja78i

epfja78i3#

对于该输入:-我保证"努力工作"并变得"精通"编程。cout〈〈"我保证"努力工作"并变得"精通"编程。"成功了

相关问题