在C++中,WideCharToMultiByte函数用于将宽字符转换为多字节字符串。该函数的声明如下:
int WideCharToMultiByte(
UINT CodePage,
DWORD dwFlags,
LPCWCH lpWideCharStr,
int cchWideChar,
LPSTR lpMultiByteStr,
int cbMultiByte,
LPCCH lpDefaultChar,
LPBOOL lpUsedDefaultChar
);
参数说明:
函数返回值为转换后的多字节字符串的长度(不包括null字符),如果转换失败,则返回0。
以下是一个使用WideCharToMultiByte函数的例子:
#include <iostream>
#include <windows.h>
int main() {
wchar_t wideStr[] = L"Hello, 你好!";
char multiByteStr[100];
int length = WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, multiByteStr, sizeof(multiByteStr), NULL, NULL);
if (length > 0) {
std::cout << "转换后的多字节字符串:" << multiByteStr << std::endl;
} else {
std::cout << "转换失败!" << std::endl;
}
return 0;
}
上述代码将宽字符字符串转换为UTF-8编码的多字节字符串,并输出转换结果。