初识八进制转义字符,深知才疏学浅,故于此整理转义字符概论以备不时之需。参考资料甚多,以后文记之。
C语言转义字符概括:
ASCII字符集初识:
了解转义字符之前需要先了解字符集,此处以ASCII字符集为学习对象:(通用性教广)
ASCII字符集中有两类字符:控制字符,可显示字符
一、控制字符:
控制字符,顾名思义,其设计是用来实现控制功能的,一般不能打印,故又称为不显示字符:
二、普通字符
普通字符,一般也称为可显示字符,这也就是我们通常可以直接打印的字符:
此外,ASCII还有扩展字符集(一般来说扩展字符集需要在特定的编译环境才能打印出来,当前只是以ASCII标准字符集作为引子引入转义字符,此处先按下不表)
转义字符:
转义字符(Escape Character)是在编程中用于特殊功能的字符序列,它们允许程序员在字符串中插入特殊的控制字符,如控制台输出的响铃、换行、制表等。
转义字符包括:一般的转义字符,强制输出类转义字符,进制类转义字符
一、一般的转义字符
1.转义字符是用来输出控制字符的,这就是一般的转义字符,用于控制
如:\n,\t,\0等等
\0是空字符
printf("1\n");
printf("2\n");
打印结果:
1
2
二、强制输出类转义字符
2.此外,C语言的标准输出中预设置了很多关键字符,这些关键字符在打印中有特殊作用,比如%d等,当我想输出这些特定符号本身的时候,也需要使用转义字符来输出,
如:打印%d
printf("%%d");
%d
打印\
printf("\\");
\
三、进制类转义字符
3.另外,常规的字符也可以通过转义其ASCII码的八进制值或者十六进制值来进行输出,这就是进制类转义字符:
如:打印>
printf("\076");//八进制>
printf("\n");//换行
printf("\76");//八进制>
printf("\n");//换行
printf("\x03E");//十六进制
printf("\n");//换行
printf("\x3E");//十六进制
>
>
>
>
四、转义字符总结
转义字符 | 释义 | 补充 |
---|---|---|
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 | 在某些编译器下 ,会将 “ ??) ” 解析成 三字母词 “ ] ” (未用特定编译器测试,待定) 目前测试的编译器可以直接用??打印 |
\` | 用于表示字符常量` | |
\" | 用于表示一个字符产内部的双引号 | |
\\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 | |
\a | 警告字符,蜂鸣 | 在打印 \a 时会触发电脑上的蜂鸣器. |
\b | 退格符 | 退格(不换行) |
\f | 进纸符 | 打印机走纸换页(FF)(未经过测试,待定) |
\n | 换行 | |
\r | 回车 | \r可以将光标移动到当前行的开头,然后继续输出后续的内容,从而实现覆盖之前输出内容的效果。这在一些需要实时更新输出的情况下非常有用,比如进度条的展示或动态文本的更新 |
\t | 水平制表符 | |
\v | 垂直制表符 | |
\ddd | ddd表示1~3个八进制的数字。如:\130X | 大于三位,或者遇到非八进制数字时则转换结束,后面的数字直接打印。 |
\xdd | dd表示2个十六进制数字。如:\x30 0 | 十六进制超过3位会打印乱码,后面的数字不会直接打印 |
\0 | 空字符(NULL) | |
printf("abcdefg\baa");
//打印结果:
abcdefaa
printf("abcdefg\raa");
//打印结果
aa
使用转义字符时需要注意以下问题:
- 转义字符中只能使用小写字母,
- 每个转义字符只能看作一个字符。
- \v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
- 在C程序中,使用不可打印字符时,通常用转义字符表示。
- 转义字符’\0’表示空字符NULL,它的值是0。而字符'0'的ASCII码值是48。因此,空字符’\0’不是字符0。另外,空字符不等于空格字符,空格字符的ASCII码值为32而不是0。编程序时,读者应当区别清楚。
- 如果反斜线之后的字符和它不构成转义字符,则’\’不起转义作用将被忽略。
printf("a\qbc\nDEF\n");
aqbc
DEF - 转义字符也可以出现在字符串中,但只作为一个字符看待。
- \n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标
- 八进制和十六进制转义字符的范围(待整理-偷个懒先)
- 提示(十进制256=八进制400)
基础练习:
包括转义字符的字符长度计算:参考C语言中的转义字符详解与实例解析-优快云博客文章浏览阅读5.6w次,点赞187次,收藏786次。转义字符_c语言转义字符https://blog.youkuaiyun.com/qq_45559559/article/details/126132152
参考资料(reference):