c语言转义字符删除,C语言——转义字符
??
1、C语言中为什么需要转义字符?
要知道为什么你首先需要知道一下几个知识点:
1)所有的数据在内存中都是以二进制的形式进行存放的。
2)在数据转换为二进制时是按照ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)进行编码的。当然像汉字这些的编码可能采用的是UTF-8或者其他的编码方式,但是这些编码方式的前128个字节的信息和ASCII编码完全吻合。
3)这时,需要简单的关注一下ASCII表
http://www.asciima.com/
【c语言转义字符删除,C语言——转义字符】有没有发现一些比较不一样的地方?(以下来自百度百科,经过我的对比,发现百科没有胡说^_^)
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
好了,到这块时,应该了解的知识已经基本都写出来了,现在说说为什么需要转义字符这个东西:
举个例子:每个写C的人都大量用到的 \n,它表示的是换行,这个地球人都知道。在ASCII表中会看到换行的编码是十进制的10,也就是说,在C语言输出一个字符串后,你加上\012(八进制表示的10,此处不能用十进制,因为十进制没有转义)
本来用\012就可以来实现换行了,为什么还要有一个\n 呢?我推测:是美国那帮哥们在搞这个的时候,换行用的那么多,记一个\012又不太好记住,所以就搞出来了一个\n来代表换行。同理:用其他转义字符来代替对应的编码。毕竟记住几个字母比记住几个数字要简单一点,而且还少敲几下键盘。
2、转义字符的定义
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
3、都有哪些常见的转义字符
\a警告字符,响铃或者其他一些可听见或者看见的信号
\b退格
\f进纸字符
\n换行符
\r回车符
\t水平制表符
\v垂直制表符
\dddddd表示八进制数。这个转义符表示的字符就是给定的八进制数值所代表的字符。
\?在书写连续多个问号时使用,防止被解释为三字母词。(关于三字母词可以去看《C和指针》P22)
\"用于表示一个字符串内部的双引号
\'用于表示字符常量'
\\用于表示一个反斜杠,防止解释为转义字符。
\0ASCII编码为0的值,也就是NUL,作为一个字符串结束的标志。
1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。3,\t 光标向前移动四格或八格,可以在编译器里设置
推荐阅读
- C语言小白进阶之路|C语言——字符、字符串的输入输出
- c语言将指针指向字符串,C语言基础——字符串指针(指向字符串的指针)
- C语言|C语言——字符串旋转问题
- c语言|C语言——字符串分类统计
- 字符串|C语言——字符串学习笔记(2)
- 字符串操作|c语言——字符串右移
- c语言|C语言——指针
- C语言基础|C语言基础级——字符与字符串
- 编程|C语言——字符串逆序输出
- c语言|C语言初阶——2.函数