位置:首页 > 高级语言 > C语言标准库 > wctomb() - C语言库函数

wctomb() - C语言库函数

C库函数 int wctomb(char *str, wchar_t wchar) 函数将宽字符wchar 多字节表示,并把它存储在字符数组指向 bystr 的开始。

声明

以下是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:
");
   i = wctomb( pmb, wc );
   printf("Characters converted: %u
", i);
   printf("Multibyte character: %.1s
", pmb);

   printf("Trying to convert when target is NULL:
");
   i = wctomb( pmbnull, wc );
   printf("Characters converted: %u
", i);
   /* this will not print any value */
   printf("Multibyte character: %.1s
", pmbnull);
   
   return(0);
}

让我们编译和运行上面的程序,这将产生以下结果:

Converting wide character:
Characters converted: 1
Multibyte character: a
Trying to convert when target is NULL:
Characters converted: 0
Multibyte character: