c++ 之转义字符

本文详细介绍了C++中的转义字符,包括转义序列编码、八进制转义、十六进制转义和多字符输入。在八进制转义中,字符范围为0-7,而在十六进制转义中,字符范围为0-F。当给char变量赋值超过其容量时,会发生截断;对于int类型,多个字符的数据将以256进制处理。

一、转义序列编码

字符名称ASCII符号C++代码十进制十六进制
换行符NL(LF)\n100xA
水平制表符HT\t90x9
垂直制表符VT\v110xB
退格BS\b80x8
回车CR\r130xD
振铃BEL\a70x7
反斜杠\\\920x5C
问号?\?630x3F
单引号\’390x27
双引号"\"340x22

二、八进制转义

由 \ + 3 位字符组成,其中字符范围为 0-7 。

ASCII 码表总范围为 \000 - \177,实际上允许 \000 - \377 。

示例:

\323    \042   \04   \177

三、十六进制转义

用 \x + 任意位字符组成,其中字符范围为 0-F , \0X \0x \X 都是错误的前缀。

ASCII 码表总范围为 \x00 - \x7f ,实际上允许 \x00 - \xff 。

示例:

\x13   \xff   \x01   \x0000000f

四、多字符输入

最多允许给 char 变量赋值 4 个字节的字符,但 char 变量最终结果为最后字符。

字符串则允许任意多个字节,但是 \0 之后的不被存储计算(char 会计算)。

特殊情况:

在八进制中遇到超出 0-7 范围的字符,或总范围超出 \0000 - \0377 ,则发生截断。

\7687             \76    8   7
\22222            \222   2   2
\087              \0     8   7
\95               \0     9   5

在十六进制中遇到超出 0-F 范围的字符,则发生截断。

\xdfg             \xdf   g
\x0000hg          \x0    h    g
\x0g              \x0    g

在十六进制中遇到总范围超出 \x00 - \xff ,则报错,不会截断读取。

\x1234           error
\xg              error

四、int 赋值

当有多个字符的 char 型数据给 int 类型赋值时,为 256 进制。

示例:

11               49*256   +   49
\0011            1*256   +   49
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值