原始字面量

发布时间 2023-12-04 16:59:04作者: Beasts777

文章参考:爱编程的大丙 (subingwen.cn)

概述:

在C和C++中,如果想在字符串中表示一些特殊字符,往往都是通过特殊字符进行转义。例如输入路径时,想要输入\,就要使用\\,对其进行转义,因为\是特殊字符。而在C++11中,提供了原始字面量这一操作,在原始字面量中省略了转义的操作,可以直接对特殊字符进行表示。

此外,之前如果想要将一个字符串写在不同的行,需要加连接符,而原始字面量则无需加连接符。

语法:

R"xxx(原始字符串)xxx"

其中:

  • R开头说明这是一个原始字面量
  • 两侧的xxx必须一致,但在字符串解析时会被忽略,因此一般不需要加。
  • 原始字符串必须在()内。

Eg:

  • 输出特殊字符:

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main(void){
        string str1 = "D:\\Coding\\test.cpp";
        // 使用原始字面量无需对特殊字符进行转义
        string str2 = R"(D:\Coding\test.cpp)";
        cout << str1 << ednl;
        cout << str2 << ednl;
        return 0;
    }
    

    输出:

    D:\Coding\test.cpp
    D:\Coding\test.cpp
    
  • 字符串跨越多行:

    int main(void){
        string str1 = "one\
        two\
        three";
        // 使用原始字面量无需添加连接符
        string str2 = R"(one
        two
        three)";
        cout << str1 << ednl;
        cout << str2 << ednl;
        return 0;
    }