tchar数组如何转为 fstring
时间: 2024-03-11 21:49:15 浏览: 95
转 String,CString,TCHAR,char之间区别和联系
在 Windows 平台上,`TCHAR` 类型可以自动转换为 `wchar_t` 或 `char` 类型。因此,将 `TCHAR` 类型的数组转换为 `std::wstring` 或 `std::string` 类型的字符串,可以使用以下方法:
```c++
// 将 TCHAR 类型的数组转换为 std::wstring 类型的字符串
std::wstring str = szArray;
// 将 TCHAR 类型的数组转换为 std::string 类型的字符串
std::string str = std::string(szArray);
```
这里,我们直接将 `TCHAR` 类型的数组赋值给 `std::wstring` 或 `std::string` 类型的字符串,编译器会自动进行类型转换。如果你有多个 `TCHAR` 类型的数组需要转换,可以使用一个函数封装这个过程:
```c++
#include <string>
#include <tchar.h>
// 将 TCHAR 类型的数组转换为 std::wstring 类型的字符串
std::wstring ConvertTCHARToString(const TCHAR* szArray)
{
#ifdef UNICODE
return szArray;
#else
std::wstring str = std::wstring(szArray);
return str;
#endif
}
// 将 TCHAR 类型的数组转换为 std::string 类型的字符串
std::string ConvertTCHARToString(const TCHAR* szArray)
{
#ifdef UNICODE
std::string str = std::string(szArray);
return str;
#else
return szArray;
#endif
}
```
在这个函数中,我们根据编译器的设置,自动选择将 `TCHAR` 类型的数组转换为 `std::wstring` 或 `std::string` 类型的字符串。使用时,可以像这样调用:
```c++
TCHAR szArray[MAX_PATH] = {0};
// ...
std::wstring str = ConvertTCHARToString(szArray); // 将 TCHAR 类型的数组转换为 std::wstring 类型的字符串
std::string str = ConvertTCHARToString(szArray); // 将 TCHAR 类型的数组转换为 std::string 类型的字符串
```
阅读全文