📜  C++ c16rtomb()

📅  最后修改于: 2020-09-25 09:24:04             🧑  作者: Mango

C++中的c16rtomb() 函数将16位字符表示形式转换为狭窄的多字节字符表示形式。

c16rtomb() 函数在头文件中定义。

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',则会存储一个空字节。

c16rtomb()参数

c16rtomb()返回值

示例:c16rtomb() 函数如何工作?

#include 
#include 
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

运行该程序时,输出为:

Hello World!