转义 R "()" 在 C++ 中的原始字符串中

escape R"()" in a raw string in C++

本文关键字:字符串 原始 C++ 转义      更新时间:2023-10-16
  string raw_str = R"(R"(foo)")";

如果我在原始字符串中有R"()",这会导致解析器混淆。(即,它认为最左边)"是原始字符串的末尾。

我该如何逃脱?

原始字符串文字[2]的格式为:R"delimiter( raw_characters )delimiter"

因此,您可以使用不在字符串中的其他分隔符,例如:

string raw_str = R"~(R"(foo)")~";

原始字符串将在它看到的第一个)"后终止。您可以将分隔符更改为***例如:

string raw_str = R"***(R"(foo)")***";