C语⾔转义字符的使⽤
字符集(Character Set)为每个字符分配了唯⼀的编号,我们不妨将它称为编码值。在C语⾔中,⼀个字符除了可以⽤它的实体(也就是真正的字符)表⽰,还可以⽤编码值表⽰。这种使⽤编码值来间接地表⽰字符的⽅式称为转义字符(Escape Character)。
转义字符以\或者\x开头,以\开头表⽰后跟⼋进制形式的编码值,以\x开头表⽰后跟⼗六进制形式的编码值。对于转义字符来说,只能使⽤⼋进制或者⼗六进制。
字符 1、2、3、a、b、c 对应的 ASCII 码的⼋进制形式分别是 61、62、63、141、142、143,⼗六进制形式分别是 31、32、33、61、62、63。下⾯的例⼦演⽰了转义字符的⽤法:
char a ='\61';//字符1
char b ='\141';//字符a
char c ='\x31';//字符1
c++中string的用法char d ='\x61';//字符a
char*str1 ="\x31\x32\x33\x61\x62\x63";//字符串"123abc"
char*str2 ="\61\62\63\141\142\143";//字符串"123abc"
char*str3 ="The string is: \61\62\63\x61\x62\x63"//混⽤⼋进制和⼗六进制形式
转义字符既可以⽤于单个字符,也可以⽤于字符串,并且⼀个字符串中可以同时使⽤⼋进制形式和⼗六进制形式。
⽰例:
#include <stdio.h>
int main(){
puts("\x68\164\164\x70://baidu\x6e\145\x74");
return0;
}
运⾏结果:
baidu
转义字符的初衷是⽤于 ASCII 编码,所以它的取值范围有限:
⼋进制形式的转义字符最多后跟三个数字,也即\ddd,最⼤取值是\177;
⼗六进制形式的转义字符最多后跟两个数字,也即\xdd,最⼤取值是\x7f。
超出范围的转义字符的⾏为是未定义的,有的编译器会将编码值直接输出,有的编译器会报错。
对于 ASCII 编码,0~31(⼗进制)范围内的字符为控制字符,它们都是看不见的,不能在显⽰器上显⽰,甚⾄⽆法从键盘输⼊,只能⽤转义字符的形式来表⽰。不过,直接使⽤ ASCII 码记忆不⽅便,也不容易理解,所以,针对常⽤的控制字符,C语⾔⼜定义了简写⽅式,完整的列表如下:
\n和\t是最常⽤的两个转义字符:
\n⽤来换⾏,让⽂本从下⼀⾏的开头输出,前⾯的章节中已经多次使⽤;
\t⽤来占位,⼀般相当于四个空格,或者 tab 键的功能。
单引号、双引号、反斜杠是特殊的字符,不能直接表⽰:
单引号是字符类型的开头和结尾,要使⽤\'表⽰,也即'\'';
双引号是字符串的开头和结尾,要使⽤\"表⽰,也即"abc\"123";
反斜杠是转义字符的开头,要使⽤\\表⽰,也即'\\',或者"abc\\123"。
转义字符⽰例:
#include <stdio.h>
int main(){
puts("C\tC++\tJava\n\"C\" first appeared!");
return0;
}
运⾏结果:
C C++ Java
"C" first appeared!
如果感觉不错的话请点赞哟
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论