C++ 转义字符

Muhammad Husnain 2023年10月12日
  1. C++ 中的控制字符
  2. C++ 中的标点符号
  3. C++ 中的数字字符引用
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'};

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

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn