C++ 轉義字元

Muhammad Husnain 2024年2月16日
  1. C++ 中的控制字元
  2. C++ 中的標點符號
  3. 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'};

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

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn