首页C/C++字符串转义

C/C++字符串转义

转义C/C++字符串中的特殊字符,包括八进制和十六进制序列

关于C/C++字符串转义

C和C++语言使用反斜杠作为转义字符的前缀。字符串字面量中的特殊字符必须使用转义序列来表示,否则会导致编译错误或意外行为。

C/C++支持多种转义序列,包括简单转义(如 \n)、八进制转义(如 \012)和十六进制转义(如 \x0A)。理解这些转义序列对于正确处理二进制数据和特殊字符至关重要。

转义序列分类

简单转义序列

使用反斜杠后跟单个字符表示常见的控制字符

八进制转义序列

使用 \nnn 格式(1-3位八进制数字)表示任意字节值

十六进制转义序列

使用 \xnn 格式表示任意字节值,常用于二进制数据

Unicode转义(C++11)

使用 \uXXXX 或 \UXXXXXXXX 表示Unicode字符

转义规则参考

转义序列ASCII码说明
\\0x5C反斜杠
\'0x27单引号
\"0x22双引号
\n0x0A换行符 (LF)
\r0x0D回车符 (CR)
\t0x09水平制表符
\b0x08退格符
\f0x0C换页符
\v0x0B垂直制表符
\a0x07响铃/警报
\00x00NULL字符
\ooo八进制八进制值(1-3位)
\xhh十六进制十六进制值(2位)

常见使用场景

嵌入式系统

在嵌入式C代码中处理串口通信和控制字符。

二进制协议

构建包含特定字节序列的网络协议数据包。

文件路径

在Windows路径中正确处理反斜杠。

格式化输出

在printf格式字符串中使用换行和制表符。

使用技巧

  • 八进制转义最多使用3位数字,超过377(255)会产生警告
  • 十六进制转义没有位数限制,但只取最后两位有效
  • C++11引入了原始字符串字面量 R"(...)",可以避免转义
  • 宽字符串(L"...")和UTF-8字符串(u8"...")使用相同的转义规则
  • 字符串字面量连接时,转义序列不会跨越字面量边界

原始字符串(C++11)

C++11引入了原始字符串字面量,允许在字符串中包含任何字符而无需转义。语法为 R"delimiter(content)delimiter",其中delimiter是可选的用户自定义分隔符。

数据默认在您的本地浏览器上处理,不会上传至服务器。如需上传会明确提示。

© 2026 See-Tool. 保留所有权利。 | 联系站长