首页 > 解决方案 > 什么是原始字符串?

问题描述

我在 C++17 草案 n4713 中遇到了这个代码片段:

#define R "x"
const char* s = R"y"; // ill-formed raw string, not "x" "y"

什么是“原始字符串”?它有什么作用?

标签: c++c++11rawstring

解决方案


原始字符串文字是字符串文字,旨在更容易地包含嵌套字符,例如引号和反斜杠,这些字符通常具有分隔符和转义序列开头的含义。例如,它们对于编码 HTML 之类的文本很有用。例如,对比

"<a href=\"file\">C:\\Program Files\\</a>"

这是一个常规的字符串文字,与

R"(<a href="file">C:\Program Files\</a>)"

这是一个原始字符串文字。在这里,除了引号之外使用括号允许 C++ 将嵌套引号与分隔字符串本身的引号区分开来。


推荐阅读