返回值
- 如果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.jc2182.com