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: