c++11新特性:字符串字面量

字符串字面量(string literal)是指双引号引住的字符,双引号中可以没有字符,也可以有很多个字符。使用字符串字面量可以快速得到需要的一些编码字符。

字面量列表

语法 示例 解释
"(未转义字符 转义字符)" "示例" 窄多字节字符串字面量
L"(未转义字符 转义字符)" L"示例" 宽字符串字面量,为了支持汉语等语言。
u8"(未转义字符 转义字符)" u8"示例" UTF-8 编码的字符串字面量。(C++11起新增)
u"(未转义字符 转义字符)" u"示例" UTF-16 编码的字符串字面量。(C++11起新增)
U"(未转义字符 转义字符)" U"示例" UTF-32 编码的字符串字面量。(C++11起新增)
前缀(可选)R"分隔符(原始字符)分隔符" R"prefix(示例)prefix"或R"(示例)" 原始字符串字面量。(C++11起新增)

一些说明

  • 类型: const wchar_t[N],其中N是执行范围编码的代码单元中的字符串大小,包括空终止符。
  • R为原始字符串字面量,用于避免转义任何字符。该字面量分隔符间的任何内容都成为字符串的一部分。
#include <iostream>
int main(int argc, char *argv[])
{
const char *longString = R"(
This is
a very
long
string.
)";

std::cout<<"====="<<std::endl;
std::cout<<longString<<std::endl;
std::cout<<"====="<<std::endl;

return 0;
}

=====

This is
a very
long
string.

=====

由于R"(的后面与)"的前面都使用了换行,所以输出两个空换行。