原始字符串字面量不進行轉義處理,內容按原樣保留。Python 中以 r'...' 表示,C++11 則使用 R"分隔符(內容)分隔符" 語法。
R 開頭,後接雙引號。(。) 加相同分隔符加雙引號結束。例如:R"(C:\Windows\System32)" 表示字面路徑,無需雙重反斜槓。
#include
#include
int main() {
// 普通字符串:\n 會被轉義為換行
std::string normal = "First line.\nSecond line.\nEnd.\n";
// 原始字符串:\n 保持為兩個字符
std::string raw = R"(First line.\nSecond line.\nEnd.\n)";
std::cout << "Normal:\n" << normal;
std::cout << "Raw:\n" << raw;
// 自定義分隔符,允許內容包含 )"
std::cout << R"foo(Hello, "world"!)foo" << std::endl;
// 多行原始字符串
std::cout << R"(
這裡可以
隨意換行
和縮進
)";
}