C语言 <stdlib.h> 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-这是指向多字节字符的第一个字节的指针。
    • n-这是要检查的字符长度的最大字节数。
  • 返回值

    • 如果str不为NULL,则mbtowc()函数返回从str开始的已消耗字节数;如果s指向空字节,则返回0;如果失败则返回-1。
    • 如果str为NULL,则如果编码具有非平凡的移位状态,则mbtowc()函数返回非零;如果编码为无状态,则mbtowc()函数返回零。
    示例
    以下示例显示mbtowc函数的用法-
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main () {
       char *str = "This is cainiaoya.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);
    }
    
    尝试一下
    让我们编译并运行上面的程序,它将产生以下结果,该结果将以多字节形式输出,即一种二进制输出。
    
    ???