C语言 <stdlib.h> wctomb 函数

  • 描述

    C库函数int wctomb(char *str, wchar_t wchar)函数将宽字符wchar转换为其多字节表示形式,并将其存储在str指向的字符数组的开头。
  • 声明

    以下是wctomb函数的声明。
    
    int wctomb(char *str, wchar_t wchar)
    
    参数
    • str-这是指向足以容纳多字节字符的数组的指针。
    • wchar-这是wchar_t类型的宽字符。
  • 返回值

    • 如果str不为NULL,则wctomb()函数返回已在str处写入字节数组的字节数。如果wchar无法表示为多字节序列,则返回-1。
    • 如果str为NULL,则wctomb()函数如果编码具有非平凡的移位状态,则返回非零;如果编码为无状态,则返回零。
    示例
    以下示例显示wctomb函数的用法-
    
    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main () {
       int i;
       wchar_t wc = L'a';
       char *pmbnull = NULL;
       char *pmb = (char *)malloc(sizeof( char ));
    
       printf("Converting wide character:\n");
       i = wctomb( pmb, wc );
       printf("Characters converted: %u\n", i);
       printf("Multibyte character: %.1s\n", pmb);
    
       printf("Trying to convert when target is NULL:\n");
       i = wctomb( pmbnull, wc );
       printf("Characters converted: %u\n", i);
       /* this will not print any value */
       printf("Multibyte character: %.1s\n", pmbnull);
       
       return(0);
    }
    
    尝试一下
    让我们编译并运行上面的程序,它将产生以下结果。
    
    Characters converted = 29
    Multibyte character = http://www.cainiaoya.com