C语言中的转义字符【转ce123的技术博客】
C語言中的轉(zhuǎn)義字符
簡介
在字符集中,有一類字符具有這樣的特性:當(dāng)從鍵盤上輸入這個(gè)字符時(shí),顯示器上就可以顯示這個(gè)字符,即輸入什么就顯示什么。這類字符稱為可顯示字符,如a、b、c、$、+和空格符等都是可顯示字符。
另一類字符卻沒有這種特性。它們或者在鍵盤上找不到對應(yīng)的一個(gè)鍵(當(dāng)然可以用特殊方式輸入),或者當(dāng)按鍵以后不能顯示鍵面上的字符。其實(shí),這類字符是為控制作用而設(shè)計(jì)的,故稱為控制字符。
在C語言中,構(gòu)成字符常量的控制字符必須用轉(zhuǎn)義字符表示。轉(zhuǎn)義字符是一種以“\”開頭的字符。例如退格符用'\b'表示,換行符用'\n'表示。轉(zhuǎn)義字符中的'\'表示它后面的字符已失去它原來的含義,轉(zhuǎn)變成另外的特定含義。反斜杠與其后面的字符一起構(gòu)成一個(gè)特定的字符。
轉(zhuǎn)義字符是C語言中表示字符的一種特殊形式。轉(zhuǎn)義字符以反斜'\'開頭,后面跟一個(gè)字符或一個(gè)八進(jìn)制或十六進(jìn)制數(shù)表示。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱轉(zhuǎn)義字符。
通常使用轉(zhuǎn)義字符表示ASCII碼字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的單撇號('),用于表示字符串常量的雙撇號(")和反斜杠(\)等。例如,printf函數(shù)的格式串中用到的'\n'就是一個(gè)轉(zhuǎn)義字符,其意義是“回車換行”。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。下表是常用的轉(zhuǎn)義字符及其含義:
| 轉(zhuǎn)義字符 | 意義 | ASCII碼值(十進(jìn)制) |
| \a | 響鈴(BEL) | 007 |
| \b | 退格(BS) ,將當(dāng)前位置移到前一列 | 008 |
| \f | 換頁(FF),將當(dāng)前位置移到下頁開頭 | 012 |
| \n | 換行(LF) ,將當(dāng)前位置移到下一行開頭 | 010 |
| \r | 回車(CR) ,將當(dāng)前位置移到本行開頭 | 013 |
| \t | 水平制表(HT) (跳到下一個(gè)TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
| \\ | 代表一個(gè)反斜線字符''\' | 092 |
| ? | ? | ? |
| \' | 代表一個(gè)單引號(撇號)字符 | 039 |
| \" | 代表一個(gè)雙引號字符 | 034 |
| \0 | 空字符(NULL) | 000 |
| \ddd | 1到3位八進(jìn)制數(shù)所代表的任意字符 | 三位八進(jìn)制 |
| \xhh | 1到2位十六進(jìn)制所代表的任意字符 | 二位十六進(jìn)制 |
一般轉(zhuǎn)義字符
這種轉(zhuǎn)義字符,雖然在形式上由兩個(gè)字符組成,但只代表一個(gè)字符。常用的一般轉(zhuǎn)義字符為:\a ?\n ?\t ?\v ?\b ?\r ?\f ?\\?\’?\"
細(xì)心的讀者可能已經(jīng)發(fā)現(xiàn),轉(zhuǎn)義字符'\/'代表的反斜杠"/"、轉(zhuǎn)義字符’\’’代表的字符"'"和轉(zhuǎn)義字符'\"'代表的字符""",其本身就是可顯示字符,為什么還要對它轉(zhuǎn)義呢? 這是因?yàn)樗鼈兊脑械淖址问揭炎魉?#xff0c;其中單引號用作區(qū)分字符常量的括號,雙引號用作區(qū)分字符串(下面將要介紹字符串)的括號,而反斜杠本身已用來表示轉(zhuǎn)義字符的開頭,因此必須對它們用轉(zhuǎn)義字符重新聲明。
八進(jìn)制轉(zhuǎn)義字符
它是由反斜杠'/'和隨后的1~3個(gè)八進(jìn)制數(shù)字構(gòu)成的字符序列。例如,'\60'、'\101'、'\141'分別表示字符'0'、'A'和'a'。因?yàn)樽址?#39;0'、'A'和'a'的ASCII碼的八進(jìn)制值分別為60、101和141。字符集中的所有字符都可以用八進(jìn)制轉(zhuǎn)義字符表示。如果你愿意,可以在八進(jìn)制數(shù)字前面加上一個(gè)0來表示八進(jìn)制轉(zhuǎn)移字符。十六進(jìn)制轉(zhuǎn)義字符
它是由反斜杠'/'和字母x(或X)及隨后的1~2個(gè)十六進(jìn)制數(shù)字構(gòu)成的字符序列。例如,'\x30'、'\x41'、'\X61'分別表示字符'0'、'A'和'a'。因?yàn)樽址?#39;0'、'A'和'a'的ASCII碼的十六進(jìn)制值分別為0x30、0x41和0x61。 可見,字符集中的所有字符都可以用十六進(jìn)制轉(zhuǎn)義字符表示。由上可知,使用八進(jìn)制轉(zhuǎn)義字符和十六進(jìn)制轉(zhuǎn)義字符,不僅可以表示控制字符,而且也可以表示可顯示字符。但由于不同的計(jì)算機(jī)系統(tǒng)上采用的字符集可能不同,因此,為了能使所編寫的程序可以方便地移植到其他的計(jì)算機(jī)系統(tǒng)上運(yùn)行,程序中應(yīng)少用這種形式的轉(zhuǎn)義字符。
使用轉(zhuǎn)義字符時(shí)需要注意以下問題:
- 1)轉(zhuǎn)義字符中只能使用小寫字母,每個(gè)轉(zhuǎn)義字符只能看作一個(gè)字符。
- 2)\v垂直制表和\f換頁符對屏幕沒有任何影響,但會影響打印機(jī)執(zhí)行響應(yīng)操作。
- 3)在C程序中,使用不可打印字符時(shí),通常用轉(zhuǎn)義字符表示。
- 4)轉(zhuǎn)義字符’\0’表示空字符NULL,它的值是0。而字符'0'的ASCII碼值是48。因此,空字符’\0’不是字符0。另外,空字符不等于空格字符,空格字符的ASCII碼值為32而不是0。編程序時(shí),讀者應(yīng)當(dāng)區(qū)別清楚。
- 5) 如果反斜線之后的字符和它不構(gòu)成轉(zhuǎn)義字符,則’\’不起轉(zhuǎn)義作用將被忽略。
總結(jié)
以上是生活随笔為你收集整理的C语言中的转义字符【转ce123的技术博客】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TortoiseSVN回退版本
- 下一篇: windows 禁用ipv6服务_Win