CString 转换 String
时间: 2023-06-14 17:04:18 浏览: 170
在 MFC 中,可以使用 `CString` 类型的 `GetString()` 方法将其转换为 `const char*`,然后使用 `std::string` 的构造函数将其转换为 `std::string` 类型。
示例代码:
```cpp
CString cs = _T("Hello, World!");
const char* pszStr = cs.GetString();
std::string str(pszStr);
```
另外,也可以使用 ATL 中的 `CT2CA` 函数将 `CString` 转换为 `const char*`,然后再使用 `std::string` 的构造函数将其转换为 `std::string` 类型。
示例代码:
```cpp
#include <atlconv.h>
CString cs = _T("Hello, World!");
const char* pszStr = CT2CA(cs);
std::string str(pszStr);
```
相关问题
CString和string如何转换
CString和string都是C++编程语言中用于处理字符串的不同数据类型。CString是Microsoft Visual Studio中MFC库(Microsoft Foundation Classes)的一部分,它是一个宽字符字符串类型。而std::string是C++标准库里的窄字符字符串。
转换它们之间通常需要包含相应的头文件:
1. 如果是从CString到std::string,可以使用`std::string(str)`构造函数,因为CString通常有一个公开的成员函数`c_str()`返回const char*,然后传递给std::string:
```cpp
CString strC;
// ...填充strC
std::string strS = strC.c_str();
```
2. 要从std::string到CString,可以先将std::string转换为const wchar_t*,然后创建一个新的CString:
```cpp
std::string strStd;
// ...填充strStd
LPCTSTR strWC = strStd.c_str(); // 或者使用wstring_convert
CString strC = strWC;
```
CString转string
可以使用以下代码将CString转换为string:
CString cstr = "Hello World";
std::string str = CT2A(cstr);
其中,CT2A是MFC中的一个宏定义,用于将CString转换为char*类型,然后再将char*类型转换为string类型。
阅读全文