HOWTO · C++
C++ 轉義字元
本文解釋了使用 C++ 在字串文字中轉義字元的規則。
本頁內容
本教程將首先討論 C 和 C++ 中的轉義字元。這裡唯一需要注意的是,使用十六進位制程式碼假定具有與 ASCII 相容的字元編碼。
C++ 中的控制字元
\a |
\x07 |
警報(鈴聲),在大多數計算機上產生鈴聲 |
\b |
\x08 |
退格 |
\t |
\x09 |
水平製表符 |
\n |
\x0A |
換行 |
\v |
\x0B |
垂直製表符 |
\f |
\x0C |
換頁 |
\r |
\x0D |
回車(大多數計算機上的 Enter 鍵) |
\e |
\x1B |
Escape(這是非標準的。你可能並不總是找到這個) |
C++ 中的標點符號
\" 是引號(雙撇號)。另外請注意,如果字元寫成 '"',則不需要反斜槓。
\' = 撇號。同樣,在特定情況下不需要反斜槓,這次是 "'"。
\? = 問號(不過,它只在特定情況下使用,例如避免使用三元組。在 C 語言中,三元組是 3 個字元組成的組,它們一起使用時具有特定含義。
例如,??= 三元組等同於 # 標點符號。可以在此文件中找到更多資訊。
\\ = 反斜槓。當你需要編寫反斜槓時。
C++ 中的數字字元引用
\ +(加號)任意 3 個八進位制數字。
\x + 加上任意數量的十六進位制數字。請注意,編譯器會讀取十六進位制數字,直到遇到第一個非十六進位制數字,遇到第一個非十六進位制數字後,它會停止讀取當前字元的數字。
\u + 加上 4 個十六進位制數字(Unicode BMP,在 C++11 中新增)。
\U + 加上 8 個十六進位制數字(Unicode 星體平面,在 C++11 中新增)。
\0 = \00 = \000 = 空字元。
另一個特殊情況是\e,它在 C 或 C++ 中不是標準的,但會被一些編譯器用來表示\x1B。
如果你想有一些非標準的東西,例如,用字元 0 構造一個字串,後跟一個空字元\0,再跟一個字元 0,那麼你有幾個選項。
字串連線語法:
std::string(
"0\0"
"0",
3);
初始化列表語法:
std::string{'0', 0, '0'};
通常首選使用後一個選項而不是第一個選項,因為你可以避免指定大小,也可以完全避免使用轉義字元。