C++ 转义字符

本教程将首先讨论 C 和 C++ 中的转义字符。这里唯一需要注意的是,使用十六进制代码假定具有与 ASCII 兼容的字符编码。

C++ 中的控制字符

\a \x07 警报(铃声),在大多数计算机上产生铃声
\b \x08 退格
\t \x09 水平制表符
\n \x0A 换行
\v \x0B 垂直制表符
\f \x0C 换页
\r \x0D 回车(大多数计算机上的 Enter 键)
\e \x1B Escape(这是非标准的。你可能并不总是找到这个)

C++ 中的标点符号

\" 是引号(双撇号)。另外请注意,如果字符写成 '"',则不需要反斜杠。

\' = 撇号。同样,在特定情况下不需要反斜杠,这次是 "'"

\? = 问号(不过,它只在特定情况下使用,例如避免使用三元组。在 C 语言中,三元组是 3 个字符组成的组,它们一起使用时具有特定含义。

例如,??= 三元组等同于 # 标点符号。可以在此文档中找到更多信息。

\\ = 反斜杠。当你需要编写反斜杠时。

C++ 中的数字字符引用

\ +(加号)任意 3 个八进制数字。

\x + 加上任意数量的十六进制数字。请注意,编译器会读取十六进制数字,直到遇到第一个非十六进制数字,遇到第一个非十六进制数字后,它会停止读取当前字符的数字。

\u + 加上 4 个十六进制数字(Unicode BMP,在 C++11 中添加)。

\U + 加上 8 个十六进制数字(Unicode 星体平面,在 C++11 中添加)。

\0 = \00 = \000 = 空字符。

另一个特殊情况是\e,它在 C 或 C++ 中不是标准的,但会被一些编译器用来表示\x1B

如果你想有一些非标准的东西,例如,用字符 0 构造一个字符串,后跟一个空字符\0,再跟一个字符 0,那么你有几个选项。

字符串连接语法:

std::string("0\0" "0", 3);

初始化列表语法:

std::string {'0', 0, '0'};

通常首选使用后一个选项而不是第一个选项,因为你可以避免指定大小,也可以完全避免使用转义字符。