函数
<cwchar>

wctob

int wctob (wint_t wc);
将宽字符转换为单字节
当且仅当宽字符 wc 对应于多字节序列初始状态下的单字节长度多字节字符时,返回该宽字符 wc 的单字节表示。

否则,返回 EOF

参数

wc
宽字符的 wint_t 提升。
该值在内部被转换为一个wchar_t以供解释。

返回值

如果 wc 在多字节序列的初始移位状态下可以转换为一个单字节字符,函数返回其表示形式,作为一个unsigned char(提升为一个类型为int).
否则,返回 EOF

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* wctob example */
#include <wchar.h>
#include <stdio.h>

int main()
{
  int i,num;
  const wchar_t wcs [] = L"wctob example";

  num=0;
  for (i=0; i<wcslen(wcs); ++i)
    if (wctob(wcs[i]) != EOF) ++num;

  wprintf (L"wcs contains %d characters that translate to single-byte characters.",num);

  return 0;
}

输出
wcs contains 14 characters that translate to single-byte characters.


另见