C語言轉義字符實例詳解
在字符集中,有一類字符具有這樣的特性:當從鍵盤上輸入這個字符時,顯示器上就可以顯示這個字符,即輸入什么就顯示什么。這類字符稱為可顯示字符,如a、b、c、$、+和空格符等都是可顯示字符。
另一類字符卻沒有這種特性。它們或者在鍵盤上找不到對應的一個鍵(當然可以用特殊方式輸入),或者當按鍵以后不能顯示鍵面上的字符。其實,這類字符是為控制作用而設計的,故稱為控制字符。
在C語言中,構成字符常量的控制字符必須用轉義字符表示。轉義字符是一種以“\”開頭的字符。例如退格符用'\b'表示,換行符用'\n'表示。轉義字符中的'\'表示它后面的字符已失去它原來的含義,轉變成另外的特定含義。反斜杠與其后面的字符一起構成一個特定的字符。
轉義字符是C語言中表示字符的一種特殊形式。轉義字符以反斜'\'開頭,后面跟一個字符或一個八進制或十六進制數(shù)表示。轉義字符具有特定的含義,不同于字符原有的意義,故稱轉義字符。
通常使用轉義字符表示ASCII碼字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的單撇號('),用于表示字符串常量的雙撇號(")和反斜杠(\)等。
實例講解:
通過puts可以輸出字符串,例如:
puts("123abc");
"123abc" 對應的ASCII碼值的八進制分別是 61、62、63、141、142、143,上面的代碼也可以寫為:
puts("\61\62\63\141\142\143");
在C語言中,所有的ASCII碼都可以用反斜杠\加數(shù)字(默認是8進制)來表示,稱為轉義字符(Escape Character),因為\后面
的字符都不是它原來的ASCII字符的意思了。
除了八進制,也可以用十六進制來表示。用十六進制表示時數(shù)字要以x開頭。"123abc" 對應的ASCII碼值的十六進制分別是 31、
32、33、61、62、63,所以也可以寫為:
puts("\x31\x32\x33\x61\x62\x63");
注意:只能使用八進制或十六進制,不能使用十進制。
一個完整的例子:
#include <stdio.h>
int main(){
puts("The string is: \61\62\63\x61\x62\x63");
return 0;
}
運行結果:
The string is: 123abc
在ASCII碼中,從 0~31(十進制)的字符為控制字符,它們都是看不見的字符,不能在顯示器上顯示,也沒法書寫,只能以轉
義字符的形式來表示。不過,直接使用ASCII碼值記憶不方便,針對常用的控制字符,C語言又定義了簡寫方式,完整的列表如下:
| 轉義字符 | 意義 | ASCII 碼值(十進制) |
| \a | 響鈴(BEL) | 007 |
| \b | 退格(BS) ,將當前位置移到前一列 | 008 |
| \f | 換頁(FF),將當前位置移到下頁開頭 | 012 |
| \n | 換行(LF) ,將當前位置移到下一行開頭 | 010 |
| \r | 回車(CR) ,將當前位置移到本行開頭 | 013 |
| \t | 水平制表(HT) (跳到下一個TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
轉義字符示例:
#include <stdio.h>
int main(){
puts("C\tC++\tJava\nC first appeared!\a");
return 0;
}
運行結果:
C C++ Java
C first appeared!
同時會聽到喇叭發(fā)出“嘟”的聲音,這是使用\a的效果。
以上就是對C語言的轉義字符的資料整理,學習C語言的同學可以看下。
相關文章
OpenCV實戰(zhàn)之基于Hu矩實現(xiàn)輪廓匹配
這篇文章主要介紹了利用C++ OpenCV實現(xiàn)基于Hu矩的輪廓匹配,文中的示例代碼講解詳細,對我們學習OpenCV有一定的幫助,感興趣的可以學習一下2022-01-01
Linux下控制(統(tǒng)計)文件的生成的C代碼實現(xiàn)
這篇文章主要介紹了Linux下控制(統(tǒng)計)文件的生成的C代碼實現(xiàn),感興趣的小伙伴們可以參考一下2016-01-01

