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; }運行結果:
#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; }運行結果:
\
不經過轉義,寫作puts("abc\61\"xyz");
,那麼會輸出abc1"xyz
,\61
被當做轉義字符處理。"
不經過轉義,寫作puts("abc\\61"xyz");
,就會出現錯誤,編譯器會把"abc\\61"
作為一個字符串,而xyz"
不知道是什麼,也不應該出現在這裡,所以報錯。\
、"
時必須要轉義。