📜  C++ c32rtomb()

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

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

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

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

c32rtomb()参数

c32rtomb()返回值

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

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

运行该程序时,输出为:

C++ is super fast.