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