📜  C++ wctomb()

📅  最后修改于: 2020-09-25 09:02:53             🧑  作者: Mango

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

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

wctomb()原型

int wctomb (char* pmb, wchar_t wc);

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

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

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

wctomb()参数

wctomb()返回值

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

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

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

#include 
#include 
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: