统一码工具:uchar.h(C11)

作者:追风剑情 发布于:2020-8-18 9:27 分类:C

C99的wchar.h头文件提供两种途径支持大型字符集。C11专门针对统一码(Unicode)新增了适用于UTF-16和UTF-32编码的类型

uchar.h中声明的类型
类型 描述
char16_t 使用16位字符的无符号整数类型(与stdint.h中的unit_least16_t相同)
char32_t 使用32位字符的无符号整数类型(与stdint.h中的unit_least32_t相同)
size_t sizeof运算符(stddef.h)返回的整数类型
mbstate_t 非数组类型,可储存多字节字符序列和宽字符相互转换的转换状态信息

该头文件中还声明了一些多字节字符串与char16_t、char32_t格式相互转换的函数。

宽字符与多字节转换函数
类型 描述
size_t mbrto16(char16_t* restrict pwc, const char * restrict s, size_t n, mbstate_t* restrict ps) 与mbrtowc()函数相同(wchar.h),但该函数是把字符转换为char_16类型,而不是wchar_t类型
size_t mbrto32(char32_t * restrict pwc, const char * restrict s, size_t n, mbstate_t * restrict ps) 与mbrto16()函数相同,但该函数是把字符转换为char32_t类型
size_t c16rtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps) 与wcrtobm()函数相同(wchar.h),但该函数转换的是char16_t类型字符,而不是wchar_t类型
size_t c32rtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps) 与wcrtobm()函数相同(wchar.h),但该函数转换的是char32_t类型字符,而不是wchar_t类型

标签: C语言

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号