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


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


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

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

mbtowc()原型

int mbtowc (wchar_t* pwc, const char* pmb, size_t max);

mbtowc() 函数接受三个参数并返回一个整数值。此函数将 pmb 指向的 multibyte character 转换为宽字符(wchar_t 类型的值)并存储在 pwc 指向的内存位置。

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

参数:

  • pwc:指向生成的宽字符的指针
  • pmb : 指向转换为宽字符的多字节字符的指针
  • max:要考虑的多字节字符的最大大小(以字节为单位)。

返回:

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

  • pmb 指向的多字节字符中包含的字节数。
  • -1 如果 pmb 指向的第一个字节不形成有效的多字节字符。
  • 如果 pmb 指向终止空字符,即 '\0',则为 0。

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

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

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

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

int main()
{
	char pmb[] = "Welcome to Programiz.com";
	wchar_t pwc[100];
	int len, ret_val;

	/* resets internal conversion state */
	mbtowc (NULL, NULL, 0);
	len = strlen(pmb);
	ret_val = mbtowc(pwc, pmb, strlen(pmb));

	cout << "Return Value = " << ret_val << endl;
	wcout << "Wide character string: " << pwc;

	return(0);
}

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

Return Value = 1
Wide character string: W@

相关用法


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