c++中声明多行字符串

默认分类 · 2024-04-06 · 45 人浏览

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的原始样式。

c++ 语法
Theme Jasmine by Kent Liao