📅  最后修改于: 2020-09-25 09:25:46             🧑  作者: Mango
mbrtoc16() 函数在
size_t mbrtoc16( char16_t* pc16, const char* s, size_t n, mbstate_t* ps);
mbrtoc16() 函数最多将s
表示的n
多字节字符转换为等效的utf-16 字符,并将其存储在pc16
指向的内存位置。
如果s
表示空指针, pc16
忽略n
和pc16
的值,并且对的调用等效于mbrtoc16(NULL,“”,1,ps)。
如果产生的结果字符为空,则转换状态*ps
表示初始移位状态。
mbrtoc16() 函数返回与以下情况匹配的以下值中的第一个:
#include
#include
#include
#include
using namespace std;
int main(void)
{
char16_t pc16;
char s[] = "x" ;
mbstate_t ps{};
int length;
length = mbrtoc16(&pc16, s, MB_CUR_MAX, &ps);
if (length < 0)
{
perror("mbrtoc16() fails to convert");
exit(-1);
}
cout << "Multibyte string = " << s << endl;
cout << "Length = " << length << endl;
printf ("16-bit character = 0x%04hx\n", pc16);
return 0;
}
运行该程序时,输出为:
Multibyte string = x
Lengt>h = 1
16-bit character = 0x0078