📅  最后修改于: 2020-09-25 09:26:27             🧑  作者: Mango
mbrtoc32() 函数在
size_t mbrtoc32( char32_t* pc32, const char* s, size_t n, mbstate_t* ps);
mbrtoc32() 函数最多将s
表示的n
多字节字符转换为等效的utf-32 字符,并将其存储在pc32
指向的内存位置。
如果s
表示空指针, pc32
忽略n
和pc32
的值,并且对的调用等效于mbrtoc32(NULL, "", 1, ps)
。
如果产生的结果字符为空,则转换状态*ps
表示初始移位状态。
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