我使用printf()语句创建了以下输出:
printf()
printf("She said time flies like an arrow, but fruit flies like a banana.");
但我想把实际的引号放在双引号中,所以输出为她说"时光飞逝如箭,而水果飞逝如香蕉"。而不干扰用于在printf()语句中将字符串文字括起来的双引号。我该怎么做呢?
q3aa05251#
用反斜杠转义引号:
printf("She said \"time flies like an arrow, but fruit flies like a banana\".");
有一些特殊的escape characters可以在字符串常量中使用,它们用一个前导反斜杠表示。
tkclm6bt2#
值得庆幸的是,C++11还有一种更令人愉快的方法,即使用原始字符串常量。
变成:
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等较长的格式化字符串时,它无疑清晰得多。
epfja78i3#
对于该输入:-我保证"努力工作"并变得"精通"编程。cout〈〈"我保证"努力工作"并变得"精通"编程。"成功了
3条答案
按热度按时间q3aa05251#
用反斜杠转义引号:
有一些特殊的escape characters可以在字符串常量中使用,它们用一个前导反斜杠表示。
tkclm6bt2#
值得庆幸的是,C++11还有一种更令人愉快的方法,即使用原始字符串常量。
变成:
关于在左引号之后和右引号之前添加方括号,请注意,它们几乎可以是最多16个字符的任何组合,有助于避免组合出现在字符串本身中的情况。
基本源字符集的任何成员,除了:空格、左括号(、右括号)、反斜杠和表示水平制表符、垂直制表符、换页符和换行符的控制字符"(N3936 § 2.14.5 [lex. string] grammar)和"最多16个字符"(§ 2.14.5/2)
它能使短字符串清晰到什么程度还有待商榷,但当用于HTML或JSON等较长的格式化字符串时,它无疑清晰得多。
epfja78i3#
对于该输入:-我保证"努力工作"并变得"精通"编程。cout〈〈"我保证"努力工作"并变得"精通"编程。"成功了