c8rtomb
來自 cppreference.com
在標頭檔案 <uchar.h> 中定義 |
||
(自 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
[編輯] 另請參閱
(C23) |
將窄多位元組字元轉換為 UTF-8 編碼 (function) |
C++ 文件 for c8rtomb
|