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


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

C++ 中的wcstombs() 函数将宽字符串转换为等效的多字节序列。

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

wcstombs()原型

size_t wcstombs (char* dest, const wchar_t* src, size_t max);

wcstombs() 函数接受三个参数并返回一个整数值。

此函数将其第一个元素由src 指向的宽字符串转换为其多字节表示。

结果存储在 dest 指向的内存位置。参数 max 表示要转换的最大宽字符数。

转换机制与 wctomb 相同,只是 wctomb 转换状态不受影响。如果出现以下情况,转换将停止:

  • 遇到空字符,然后将其转换并存储。
  • 发现一个 wchar_t 与当前 C 语言环境中的有效字符不对应。
  • 已转换最大宽字符数。

参数:

  • dest:指向生成的多字节字符数组的指针。
  • src:指向转换为多字节字符的宽字符的第一个元素的指针。
  • max:要转换的最大宽字符数。

返回:

  • 如果转换成功,wcstombs() 返回多字节字符数,不包括写入目标数组的终止字符(即'\0')。
  • 如果在转换过程中发生任何错误,则返回 -1。

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

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

int main()
{
	wchar_t src[] = L"Welcome To Programiz.com";
	char dest[50];
	int num;

	num = wcstombs(dest, src, 50);
	cout << "Number of wide character converted = " << num << endl;
	cout << "Multibyte Character String = " << dest << endl;
	
	return 0;
}

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

Number of wide character converted = 24
Multibyte Character String = Welcome To Programiz.com

相关用法


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