wstring要转wchar
时间: 2023-09-03 17:13:06 浏览: 62
字符串类型转换
其实,wstring和wchar_t是两个不同的类型,wstring是一个宽字符串类型,而wchar_t是一个宽字符类型。
如果你要把一个wstring对象转换成一个wchar_t*,可以使用c_str()函数。例如:
```c++
#include <iostream>
#include <string>
int main()
{
std::wstring ws = L"Hello, world!";
const wchar_t* wcs = ws.c_str();
std::wcout << wcs << std::endl;
return 0;
}
```
如果你要把一个wstring对象中的字符逐个转换成wchar_t类型,可以使用循环遍历的方法。例如:
```c++
#include <iostream>
#include <string>
int main()
{
std::wstring ws = L"Hello, world!";
size_t len = ws.length();
wchar_t* wcs = new wchar_t[len + 1];
for (size_t i = 0; i < len; ++i)
{
wcs[i] = ws[i];
}
wcs[len] = L'\0';
std::wcout << wcs << std::endl;
delete[] wcs;
return 0;
}
```
需要注意的是,在使用完wcs后,要记得释放它所占用的内存。
阅读全文