Raw String Literal in C++
Literal 是一个常量变量,其值在程序的生命周期内不会改变。然而,原始字符串文字是一个字符串,其中不处理 C++ 的’ \n、\t或\” ‘ 等转义字符。因此,一个以R”( and ends in )”结尾的原始字符串文字。
Raw string Literal 的语法:
R "delimiter( raw_characters )delimiter" // 定界符是逻辑实体的结尾
在这里,分隔符是可选的,它可以是除反斜杠{ / }、空格{}和括号{()}之外的字符。
这些原始字符串文字通过精确地写入其内容(如原始字符序列)来允许一系列字符。
例子:
普通字符串字面量
“\\\\n”
原始字符串文字
\/-- Delimiter R"(\\n)" /\-- Delimiter
普通字符串文字和原始字符串文字之间的区别:
普通字符串字面量 | 原始字符串文字 |
---|---|
它不需要定义任何东西。 | 它需要一个已定义的行{括号 ()} 以前缀R开头。 |
它不允许/包含嵌套字符。 | 它允许/包括嵌套字符实现。 |
它不忽略字符的任何特殊含义,并实现了它们的特殊特性。 | 它会忽略所有特殊字符,如\n和\t,并将它们视为普通文本。 |
原始字符串文字示例:
// C++ program to demonstrate working of raw string literal
#include <iostream>
using namespace std;
// Driver Code
int main()
{
// A Normal string
string string1 = "Geeks.\nFor.\nGeeks.\n";
// A Raw string
string string2 = R"(Geeks.\nFor.\nGeeks.\n)";
cout << string1 << endl;
cout << string2 << endl;
return 0;
}
输出
Geeks. For. Geeks. Geeks.\nFor.\nGeeks.\n