当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 wctomb用法及代码示例


C语言stdlib头文件(stdlib.h)中wctomb函数的用法及代码示例。

用法:

int wctomb (char* pmb, wchar_t wc);
将宽字符转换为多字节序列
宽广的性格wc转换为等效的多字节并存储在由指向的数组中pmb。该函数以字节为单位返回等效的多字节序列的长度(以字节为单位)pmb调用后。

wctomb有自己的内部换档状态,只有在调用此函数时才需要进行更改。使用空指针作为对函数的调用pmb重置状态(并返回多字节序列是否为state-dependent)。

此函数的行为取决于LC_CTYPE所选类别C语言环境

参数

pmb
指向足以容纳多字节序列的数组的指针。
当前语言环境中字符的多字节序列的最大长度为MB_CUR_MAX个字节。
或者,可以使用空指针,在这种情况下,函数会将其内部移位状态重置为初始值,并返回多字节序列是否使用state-dependent编码。
wc
宽字型wchar_t

返回值

如果参数传递为pmb不是空指针,即写入的字符的大小(以字节为单位)pmb返回。如果没有字符对应,-1返回。

如果参数传递为pmb为空指针,如果多字节字符编码为state-dependent,则函数返回非零值,否则返回零。

示例

/* wctomb example */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* wctomb, wchar_t(C) */

int main() {
  const wchar_t str[] = L"wctomb example";
  const wchar_t* pt;
  char buffer [MB_CUR_MAX];
  int i,length;

  pt = str;
  while (*pt) {
    length = wctomb(buffer,*pt);
    if (length<1) break;
    for (i=0;i<length;++i) printf ("[%c]",buffer[i]);
    ++pt;
  }

  return 0;
}


该示例使用选定的语言环境(在这种情况下,默认"C"语言环境)。

输出:

[w][c][t][o][m][b][ ][e][x][a][m][p][l][e]



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C wctomb function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。