title: C++中的转义序列
date: 2016-05-31 22:59:41
categories: C++
tags:
- C++
- 转义字符
C++中的转义序列
两类字符不能直接使用:
- 一类是不可打印字符,例如退格等。因为没有可视的图符。
- 另一类是有特殊含义的字符(单引号,双引号,问号,反斜线)等。
这些情况下会用到转义序列,转移序列均以反斜线\
开始。
C++规定了如下的转义字符:
换行符 \n 横线制表符 \t
响铃符 \a 纵向制表符 \v
退格符 \b 双引号 \"
反斜线 \\ 问号 \?
单引号 \' 回车符 \r
程序中,上述转义符被当作一个字符来使用。
泛化的转义序列,形式是\x
后跟一个或多个十六进制数字,或者\
后边跟1个、2个、或者3个八进制数字。例如
\7(响铃) \12(换行符)
\40(空格) \0(空字符)
\115(字符M) \x4d(字符M)
注意:
如果反斜线后边跟着的八进制数字超过3个,只有前3个数字与\
构成转义序列。
例如”\1234
“表示两个字符,即八进制数123
对应的字符以及字符4
.
相反,\x
要用到后边跟着的所有数字,例如”\x1234
“表示一个16位的字符,该字符由这4个十六进制数所对应的比唯一确定。
例题:
以下程序段的输出结果是:
char s[]="\\123456\123456\t";
printf("%d\n",strlen(s));
答案:12