C++宽字节转char
时间: 2023-08-30 07:07:38 浏览: 105
将C++中的宽字节(wchar_t)转换为char,可以使用一些库函数来实现。以下是一种常见的方法,使用了C++标准库的函数`std::wstring_convert`和`std::codecvt_utf8`:
```cpp
#include <iostream>
#include <locale>
#include <codecvt>
int main() {
std::wstring wideStr = L"Hello, World!";
// 创建一个locale对象,用于转换字符编码
std::locale loc(std::locale(), new std::codecvt_utf8<wchar_t>);
// 使用std::wstring_convert将宽字节字符串转换为多字节字符串
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter;
std::string narrowStr = converter.to_bytes(wideStr);
// 打印多字节字符串
std::cout << narrowStr << std::endl;
// 将多字节字符串赋值给char数组
char charArray[50];
strncpy(charArray, narrowStr.c_str(), sizeof(charArray));
// 打印char数组
std::cout << charArray << std::endl;
return 0;
}
```
这样就可以将宽字节转换为char类型的多字节字符串。请注意,这里使用了C++11及更高版本的特性。如果您使用的是较旧的C++标准,可能需要使用其他方法来进行转换。
阅读全文