在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編碼的多字節字符串,并輸出轉換結果。