C 中的 mbtowc 函数

C 库函数int mbtowc(whcar_t *pwc, const char *str, size_t n)将多字节序列转换为宽字符。

以下是mbtowc()函数的声明。

int mbtowc(whcar_t *pwc, const char *str, size_t n)

参数是 -

  • pwc - 这是指向 wchar_t 类型对象的指针。

  • str - 这是指向多字节字符的第一个字节的指针。

  • str - 这是指向多字节字符的第一个字节的指针。

  • n - 这是要检查字符长度的最大字节数。

返回值是 -

  • 如果 str 不为 NULL,则mbtowc()函数返回从 str 开始的消耗字节数,如果 s 指向空字节,则返回 0,失败时返回 -1。

  • 如果 str 为 NULL,mbtowc()如果编码具有非平凡的移位状态,则函数返回非零,如果编码是无状态的,则函数返回零。

示例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
   char *str = "This is nhooo.com";
   wchar_t mb[100];
   int len;
   len = mblen(NULL, MB_CUR_MAX);
   mbtowc(mb, str, len*strlen(str) );
   wprintf(L"%ls \n", mb );
   return(0);
}
输出结果
???