C語言轉(zhuǎn)義字符
C語言之所以命名為C,是因為 C語言源自Ken Thompson發(fā)明的B語言,而 B語言則源自BCPL語言。下面是小編分享的C語言轉(zhuǎn)義字符,一起來看一下吧。
通過printf可以輸出字符串,例如:
printf("123abc");
"123abc" 對應(yīng)的ASCII碼值的八進(jìn)制分別是 61、62、63、141、142、143,上面的代碼也可以寫為:
printf("616263141142143");
在C語言中,所有的ASCII碼都可以用反斜杠加數(shù)字(默認(rèn)是8進(jìn)制)來表示,稱為轉(zhuǎn)義字符(Escape Character),因為后面的字符都不是它原來的ASCII字符的意思了。
除了八進(jìn)制,也可以用十六進(jìn)制來表示。用十六進(jìn)制表示時數(shù)字要以x開頭。"123abc" 對應(yīng)的ASCII碼值的十六進(jìn)制分別是 31、32、33、61、62、63,所以也可以寫為:
printf("x31x32x33x61x62x63");
注意:只能使用八進(jìn)制或十六進(jìn)制,不能使用十進(jìn)制。
一個完整的例子:
#includeint main(){ printf("616263x61x62x63"); return 0;}
運行結(jié)果:
123abc
在ASCII碼中,從 0~31(十進(jìn)制)的字符為控制字符,它們都是看不見的字符,不能在顯示器上顯示,也沒法書寫,只能以轉(zhuǎn)義字符的形式來表示。不過,直接使用ASCII碼值記憶不方便,針對常用的控制字符,C語言又定義了簡寫方式,完整的列表如下:
轉(zhuǎn)義字符 | 意義 | ASCII碼值(十進(jìn)制) |
---|---|---|
a | 響鈴(BEL) | 007 |
退格(BS) ,將當(dāng)前位置移到前一列 | 008 | |
f | 換頁(FF),將當(dāng)前位置移到下頁開頭 | 012 |
換行(LF) ,將當(dāng)前位置移到下一行開頭 | 010 | |
回車(CR) ,將當(dāng)前位置移到本行開頭 | 013 | |
水平制表(HT) (跳到下一個TAB位置) | 009 | |
v | 垂直制表(VT) | 011 |
轉(zhuǎn)義字符示例:
#includeint main(){ printf("C C++ Javaa"); return 0;}
運行結(jié)果:
C C++ Java
同時會聽到喇叭發(fā)出“嘟”的聲音,這是使用a的效果。
【拓展】如何在字符串中輸出"和
"和在字符串中都有特殊含義:"表示字符串的開始和結(jié)束,表示轉(zhuǎn)義字符的開始。它們都不能直接出現(xiàn)在字符串中,必須要經(jīng)過轉(zhuǎn)義,也就是在前面加\,如"、\。
例如,輸出字符串a(chǎn)bc61"xyz的代碼:
#includeint main(){ printf("abc\61"xyz"); return 0;}
運行結(jié)果:
abc61"xyz
如果不經(jīng)過轉(zhuǎn)義,寫作puts("abc61"xyz");,那么會輸出abc1"xyz,61被當(dāng)做轉(zhuǎn)義字符處理。
如果"不經(jīng)過轉(zhuǎn)義,寫作puts("abc\61"xyz");,就會出現(xiàn)錯誤,編譯器會把"abc\61"作為一個字符串,而xyz"不知道是什么,也不應(yīng)該出現(xiàn)在這里,所以報錯。
總結(jié):字符串中出現(xiàn)、"時必須要轉(zhuǎn)義。
【C語言轉(zhuǎn)義字符】相關(guān)文章:
C語言入門知識:轉(zhuǎn)義字符08-24
C語言中的字符07-18
C語言中的字符(char)09-24
C語言字符數(shù)組和字符串10-19
C語言字符串07-24
C語言字符型數(shù)據(jù)09-23
C語言的字符集05-17