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


C++ wctomb()用法及代码示例


C++ 中的wctomb() 函数将宽字符转换为多字节字符。

wctomb() 函数在<cstdlib> 头文件中定义。

wctomb()原型

int wctomb (char* pmb, wchar_t wc);

wctomb() 函数接受两个参数并返回一个整数值。该函数将表示的宽字符转换为wc到它的多字节等价物,并存储在指向的内存位置pmb.可以存储的最大字符数是MB_CUR_MAX.

如果 wc 是空字符,则将空字节写入 pmb

如果pmb 是空指针,则调用wctomb() 将重置全局转换状态并确定是否使用移位序列。

参数:

  • pmb:指向生成的多字节字符的指针
  • wc : 转换为多字节字符的宽字符

返回:

如果 pmb 不是空指针,则 wctomb() 返回:

  • wc 的多字节表示中包含的字节数。
  • -1 如果 wc 不是有效字符。

如果pmb 是空指针,则重置其内部转换状态以表示初始移位状态并返回:

  • 0 如果当前多字节编码不是state-dependent(不使用移位序列)
  • 如果当前多字节编码为state-dependent(使用移位序列),则为非零值。

示例:wctomb() 函数如何工作?

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
	wchar_t wc = L'x';
	char *pmb1 = (char*)malloc(sizeof(char));
	char *pmb2 = NULL;
	int ret_val;

	cout << "When pmb is not null" << endl;
	ret_val = wctomb(pmb1, wc);

	cout << "Return Value = " << ret_val << endl;
	wcout << "Multibyte Character: " << pmb1 << endl << endl;

	cout << "When pmb is null" << endl;
	ret_val = wctomb(pmb2, wc);

	cout << "Return Value = " << ret_val << endl;
	wcout << "Multibyte Character: " << pmb2;
	
	return(0);
}

运行程序时,可能的输出将是:

When pmb is not null
Return Value = 1
Multibyte Character: x↨R
When pmb is null
Return Value = 0
Multibyte Character:

相关用法


注:本文由纯净天空筛选整理自 C++ wctomb()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。