C++ 中的 c32rtomb() 函數將 32 位字符轉換為窄多字節字符表示。
c32rtomb() 函數在<cuchar> 頭文件中定義。
c32rtomb() 原型
size_t c32rtomb(char* s, char32_t c32, mbstate_t* ps);
c32rtomb() 函數將 utf-32 字符 c32
轉換為其多字節等效字符,並將其存儲在 s
指向的對象中。
如果s
表示一個空指針,則該調用等效於某些內部緩衝區 buf 的 c32rtomb(buf, U'\0', ps)。
如果 c32
是空寬字符,即 U'\0',則存儲空字節。
參數:
s
:指向存儲多字節字符的字符數組的指針。c32
:要轉換的 32 位字符。ps
:指向解釋多字節字符串時使用的 mbstate_t 對象的指針。
返回:
- 成功時,c32rtomb() 函數返回寫入
s
指向的字符數組的字節數。 - 失敗時,返回 -1 並將 errno 設置為EILSEQ.
示例:c32rtomb() 函數如何工作?
#include <cuchar>
#include <iostream>
using namespace std;
int main()
{
const char32_t str[] = U"C++ is super fast.";
char s[50];
mbstate_t ps{};
size_t length;
int j = 0;
while (str[j])
{
length = c32rtomb(s, str[j], &ps);
if ((length == 0) || (length > 50))
break;
for (int i=0; i<length; ++i)
cout << s[i];
++j;
}
return 0;
}
運行程序時,輸出將是:
C++ is super fast.
相關用法
- C++ c32rtomb()用法及代碼示例
- C++ clock()用法及代碼示例
- C++ clog用法及代碼示例
- C++ count()用法及代碼示例
- C++ copy_n()用法及代碼示例
- C++ complex cosh()用法及代碼示例
- C++ copy()用法及代碼示例
- C++ cbrt()用法及代碼示例
- C++ count_if()用法及代碼示例
- C++ c16rtomb()用法及代碼示例
- C++ cin用法及代碼示例
- C++ ctime()用法及代碼示例
- C++ copy_backward()用法及代碼示例
- C++ cosh()用法及代碼示例
- C++ cout用法及代碼示例
- C++ calloc()用法及代碼示例
- C++ cos()用法及代碼示例
- C++ copysign()用法及代碼示例
- C++ cmath abs()用法及代碼示例
- C++ copy_if()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ c32rtomb()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。