c语言转义字符删除,C语言——转义字符



1、C语言中为什么需要转义字符?

要知道为什么你首先需要知道一下几个知识点:

1)所有的数据在内存中都是以二进制的形式进行存放的。

2)在数据转换为二进制时是按照ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)进行编码的。当然像汉字这些的编码可能采用的是UTF-8或者其他的编码方式,但是这些编码方式的前128个字节的信息和ASCII编码完全吻合。

3)这时,需要简单的关注一下ASCII表

http://www.asciima.com/

有没有发现一些比较不一样的地方?(以下来自百度百科,经过我的对比,发现百科没有胡说^_^)

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        垂直制表符

\ddd    ddd表示八进制数。这个转义符表示的字符就是给定的八进制数值所代表的字符。

\?        在书写连续多个问号时使用,防止被解释为三字母词。(关于三字母词可以去看《C和指针》P22)

\"        用于表示一个字符串内部的双引号

\'        用于表示字符常量  '

\\        用于表示一个反斜杠,防止解释为转义字符。

\0       ASCII编码为0的值,也就是NUL,作为一个字符串结束的标志。

1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。          2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。          3,\t 光标向前移动四格或八格,可以在编译器里设置

你可能感兴趣的:(c语言转义字符删除)