名稱空間
變體
操作

c8rtomb

來自 cppreference.com
< c‎ | string‎ | multibyte
在標頭檔案 <uchar.h> 中定義
size_t c8rtomb( char* restrict s, char8_t c8, mbstate_t* restrict ps );
(自 C23 起)

將一個UTF-8碼點轉換為窄多位元組字元表示。

如果 s 不是空指標,並且 c8 是碼點有效UTF-8編碼中的最後一個碼元,則函式確定儲存該碼點多位元組字元表示所需的位元組數(包括任何移位序列,並考慮當前的多位元組轉換狀態 *ps),並將多位元組字元表示儲存在第一個元素由 s 指向的字元陣列中,同時根據需要更新 *ps。此函式最多可寫入 MB_CUR_MAX 個位元組。

如果 c8 不是碼點表示中的最後一個UTF-8碼元,則函式不會寫入由 s 指向的陣列,僅更新 *ps

如果 s 是空指標,則此呼叫等效於 c8rtomb(buf, u8'\0', ps),其中 buf 是某個內部緩衝區。

如果 c8 是空字元 u8'\0',則儲存一個空位元組,前面是恢復初始移位狀態所需的任何移位序列,並且轉換狀態引數 *ps 將更新以表示初始移位狀態。

此函式使用的多位元組編碼由當前活動的 C 語言環境指定。

目錄

[編輯] 引數

s - 指向窄字元陣列的指標,多位元組字元將儲存在此處
c8 - 要轉換的UTF-8碼元
ps - 指向轉換狀態物件的指標,用於解釋多位元組字串

[編輯] 返回值

儲存在陣列物件中的位元組數(包括任何移位序列)。當 c8 不是碼點UTF-8表示中的最後一個碼元時,這可能為零。

如果 c8 無效(不構成與有效多位元組字元對應的 char8_t 序列),則將宏 EILSEQ 的值儲存在 errno 中,返回 (size_t)-1,並且轉換狀態不確定。

[編輯] 注意

使用空指標引數 s 呼叫 c8rtomb 可能會與其他使用空指標引數 s 呼叫 c8rtomb 的操作引入資料競爭。

[編輯] 示例

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.30.1.2 The c8rtomb function

[編輯] 另請參閱

將窄多位元組字元轉換為 UTF-8 編碼
(function) [編輯]
C++ 文件 for c8rtomb