c++98char*转wchar*
时间: 2023-12-23 11:04:27 浏览: 93
深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
根据提供的引用内容,以下是一个C++98版本的char*转wchar_t*的示例代码:
```cpp
#include <iostream>
#include <cstdlib>
#include <cwchar>
wchar_t* CharToWchar(const char* str) {
size_t len = strlen(str) + 1;
wchar_t* wstr = (wchar_t*)malloc(len * sizeof(wchar_t));
size_t converted = 0;
mbstowcs(wstr, str, len);
return wstr;
}
int main() {
const char* str = "Hello, world!";
wchar_t* wstr = CharToWchar(str);
wprintf(L"%ls\n", wstr);
free(wstr);
return 0;
}
```
这个示例代码中,我们定义了一个`CharToWchar`函数,它接受一个`char*`类型的字符串作为参数,并返回一个`wchar_t*`类型的字符串。在函数内部,我们首先计算了输入字符串的长度,并根据长度动态分配了足够的内存来存储转换后的字符串。然后,我们使用`mbstowcs`函数将`char*`类型的字符串转换为`wchar_t*`类型的字符串。最后,我们打印转换后的字符串,并释放了动态分配的内存。
阅读全文