📜  C++ mbrtoc32()

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

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

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

mbrtoc32()原型

size_t mbrtoc32( char32_t* pc32, const char* s, size_t n, mbstate_t* ps);

mbrtoc32() 函数最多将s表示的n多字节字符转换为等效的utf-32 字符,并将其存储在pc32指向的内存位置。

如果s表示空指针, pc32忽略npc32的值,并且对的调用等效于mbrtoc32(NULL, "", 1, ps)

如果产生的结果字符为空,则转换状态*ps表示初始移位状态。

mbrtoc32()参数

mbrtoc32()返回值

mbrtoc32() 函数返回与以下情况匹配的以下值中的第一个:

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

#include 
#include 
#include 
#include 
using namespace std;

int main(void)
{
    char32_t pc32;
    char s[] = "x" ;
    mbstate_t ps;
    int length;

    length = mbrtoc32(&pc32, s, MB_CUR_MAX, &ps);
    if (length < 0)
    {
        perror("mbrtoc32() fails to convert");
        exit(-1);
    }

    cout << "Multibyte string = " << s << endl;
    cout << "Length = " << length << endl;
    printf ("32-bit character = 0x%08hx\n", pc32);

    return 0;
}

运行该程序时,输出为:

Multibyte string = x
Length = 1
32-bit character = 0x00000078