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'};

通常首選使用後一個選項而不是第一個選項,因為你可以避免指定大小,也可以完全避免使用轉義字元。