当前位置: 首页 > 文档资料 > C 标准库 中文版 >

int wctomb(char *str, wchar

优质
小牛编辑
135浏览
2023-12-01

描述 (Description)

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

声明 (Declaration)

以下是wctomb()函数的声明。

int wctomb(char *str, wchar_t wchar)

参数 (Parameters)

  • str - 这是指向一个足以容纳多字节字符的数组的指针,

  • wchar - 这是wchar_t类型的宽字符。

返回值 (Return Value)

  • 如果str不为NULL,则wctomb()函数返回已写入str的字节数组的字节数。 如果wchar不能表示为多字节序列,则返回-1。

  • 如果str为NULL,则wctomb()函数在编码具有non-trivial(非平凡)移位状态时返回非零,如果编码是无状态则返回零。

例子 (Example)

以下示例显示了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);
}

让我们编译并运行上面的程序,它将产生以下结果 -

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