C++ 11字符串 原始字面量 R””Raw string Literal语法 

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
分类: C++