1.使用 \ 续行
使用反斜杠\作为续行符(line continuation character)可以将一行代码分成多行书写,提高代码的可读性。反斜杠\用于表示续行,让一个较长的字符串字面值跨越多行书写。
反斜杠\后面的换行符会被忽略,因此在编译时这些字符串字面值会被连接成一个单独的字符串。
string s = " This string will\n\ //最后的\代表续行
printed as the pyramid\n\
as one single string literal form\n";
2.字符串连接
相邻的字符串字面值会在编译时连接在一起。这个过程被称为字符串字面值的拼接(concatenation)。在你提供的代码中,三个字符串字面值被放在相邻的位置,因此它们会在编译时连接成一个单独的字符串。
string s1 =
"This string will be printed as the\n" //在编译阶段会将这几个字符串连接
" one. You can include as many lines\n"
"as you wish. They will be concatenated\n";
3.原始字符串字面量
可以使用原始字符串字面量(Raw string literal)来优雅地声明多行字符串。这种语法允许你直接书写原始的字符串内容,而无需转义字符。让我们一起看看如何使用这个特性来声明多行字符串:
首先,C++11引入了原始字符串字面量的语法,格式如下:
R"delimiter(raw_characters)delimiter"
其中,delimiter
是你自己定义的分界符。这样,你可以直接书写多行字符串,而不用担心转义字符的问题。
例如,假设我们要声明一个JSON字符串,原本的写法可能是这样的:
auto jsonStr = "{\"name\":\"James\",\"nickname\":\"goodboy\"}";
但是使用原始字符串字面量,我们可以这样写:
auto jsonStr = R"delimiter(
{
"name": "James",
"nickname": "good boy"
}
)delimiter";
这样,我们既保持了代码的对齐,又能够直观地表示JSON的原始样式。