程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言轉義字符

C語言轉義字符

編輯:C語言基礎知識
通過puts可以輸出字符串,例如:
puts("123abc");
"123abc" 對應的ASCII碼值的八進制分別是 61、62、63、141、142、143,上面的代碼也可以寫為:
puts("\61\62\63\141\142\143");
在C語言中,所有的ASCII碼都可以用反斜槓\加數字(默認是8進制)來表示,稱為轉義字符(Escape Character),因為\後面的字符都不是它原來的ASCII字符的意思了。

除了八進制,也可以用十六進制來表示。用十六進制表示時數字要以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!

同時會聽到喇叭發出“嘟”的聲音,這是使用\a的效果。

【拓展】如何在字符串中輸出"和\

"\在字符串中都有特殊含義:"表示字符串的開始和結束,\表示轉義字符的開始。它們都不能直接出現在字符串中,必須要經過轉義,也就是在前面加\,如\"\\

例如,輸出字符串abc\61"xyz的代碼:
#include <stdio.h>
int main(){
    puts("abc\\61\"xyz");
    return 0;
}
運行結果:
abc\61"xyz

如果\不經過轉義,寫作puts("abc\61\"xyz");,那麼會輸出abc1"xyz\61被當做轉義字符處理。

如果"不經過轉義,寫作puts("abc\\61"xyz");,就會出現錯誤,編譯器會把"abc\\61"作為一個字符串,而xyz"不知道是什麼,也不應該出現在這裡,所以報錯。

總結:字符串中出現\"時必須要轉義。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved