在 C++11 中添加了定义原始字符串的字面量
1.定义和基本使用
定义方式为:
R"xxx(原始字符串)xxx"
其中 ()
两边的字符串可以省略,R只会处理括号中的字符串。
原始字面量 R 可以直接表示字符串的实际含义,而不需要额外对字符串做转义等操作。
R"("HELLO")" 等同于 R"(\"HELLO\")"
可以理解为是忽略所有转义字符的一个字符串格式
#include <iostream> using namespace std; int main() { const char* s1 = R"(Hello\\World)"; cout << s1 << endl; const char* s2 = "Hello\\World"; cout << s2 << endl; return 0; }
2.实际场景
在进行项目开发,需要用到Json字符串时,这个R字符串就非常有用
rsp.body = R"({"code":0, "message":"更新点踩成功"})";
我们只需要使用R字符串,就能正常编写json格式的字符串
如果不使用R字符串,就必须给Json中的每一个"
添加用于转义的\&;
,大大增加了代码的繁琐性,而且还容易出现漏加转义而导致的bug