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++ wctob()用法及代码示例
- C++ wctrans()用法及代码示例
- C++ wctype()用法及代码示例
- C++ wcstold()用法及代码示例
- C++ wcerr用法及代码示例
- C++ wcsftime()用法及代码示例
- C++ wcstod()用法及代码示例
- C++ wcscspn()用法及代码示例
- C++ wcsncmp()用法及代码示例
- C++ wcin用法及代码示例
- C++ wcstok()用法及代码示例
- C++ wcsstr()用法及代码示例
- C++ wcsrchr()用法及代码示例
- C++ wcsncpy()用法及代码示例
- C++ wcslen()用法及代码示例
- C++ wcsspn()用法及代码示例
- C++ wclog用法及代码示例
- C++ wcschr()用法及代码示例
- C++ wcstof()用法及代码示例
- C++ wcstol()用法及代码示例
注:本文由纯净天空筛选整理自 C++ wctomb()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。