C語言轉(zhuǎn)義字符實(shí)例詳解
在字符集中,有一類字符具有這樣的特性:當(dāng)從鍵盤上輸入這個(gè)字符時(shí),顯示器上就可以顯示這個(gè)字符,即輸入什么就顯示什么。這類字符稱為可顯示字符,如a、b、c、$、+和空格符等都是可顯示字符。
另一類字符卻沒有這種特性。它們或者在鍵盤上找不到對(duì)應(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碼字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的單撇號(hào)('),用于表示字符串常量的雙撇號(hào)(")和反斜杠(\)等。
實(shí)例講解:
通過puts可以輸出字符串,例如:
puts("123abc");
"123abc" 對(duì)應(yīng)的ASCII碼值的八進(jìn)制分別是 61、62、63、141、142、143,上面的代碼也可以寫為:
puts("\61\62\63\141\142\143");
在C語言中,所有的ASCII碼都可以用反斜杠\加數(shù)字(默認(rèn)是8進(jìn)制)來表示,稱為轉(zhuǎn)義字符(Escape Character),因?yàn)閈后面
的字符都不是它原來的ASCII字符的意思了。
除了八進(jìn)制,也可以用十六進(jìn)制來表示。用十六進(jìn)制表示時(shí)數(shù)字要以x開頭。"123abc" 對(duì)應(yīng)的ASCII碼值的十六進(jìn)制分別是 31、
32、33、61、62、63,所以也可以寫為:
puts("\x31\x32\x33\x61\x62\x63");
注意:只能使用八進(jìn)制或十六進(jìn)制,不能使用十進(jìn)制。
一個(gè)完整的例子:
#include <stdio.h> int main(){ puts("The string is: \61\62\63\x61\x62\x63"); return 0; }
運(yùn)行結(jié)果:
The string is: 123abc
在ASCII碼中,從 0~31(十進(jìn)制)的字符為控制字符,它們都是看不見的字符,不能在顯示器上顯示,也沒法書寫,只能以轉(zhuǎn)
義字符的形式來表示。不過,直接使用ASCII碼值記憶不方便,針對(duì)常用的控制字符,C語言又定義了簡寫方式,完整的列表如下:
轉(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 |
轉(zhuǎn)義字符示例:
#include <stdio.h> int main(){ puts("C\tC++\tJava\nC first appeared!\a"); return 0; }
運(yùn)行結(jié)果:
C C++ Java
C first appeared!
同時(shí)會(huì)聽到喇叭發(fā)出“嘟”的聲音,這是使用\a的效果。
以上就是對(duì)C語言的轉(zhuǎn)義字符的資料整理,學(xué)習(xí)C語言的同學(xué)可以看下。
上一篇:C++用mysql自帶的頭文件連接數(shù)據(jù)庫
欄 目:C語言
本文標(biāo)題:C語言轉(zhuǎn)義字符實(shí)例詳解
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/2164.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁面的局部加載