mfc中Cstring怎么转std::string
时间: 2024-02-01 08:10:38 浏览: 41
在MFC中,将CString转换为std::string有两种常见的方法:
方法一:
```cpp
CString cstr = L"hello";
std::wstring ws(cstr);
std::string str(ws.begin(), ws.end());
```
方法二:
```cpp
CString cstr = "hello";
std::string str;
str = CStringA(cstr);
```
这两种方法都可以将CString转换为std::string。方法一首先将CString转换为std::wstring,然后再将std::wstring转换为std::string。方法二直接使用CStringA将CString转换为std::string。
相关问题
C++ CString转std::string
在C++中,CString是MFC(Microsoft Foundation Classes)库中的一个字符串类,而std::string是C++标准库中的字符串类。如果你想将一个CString对象转换为std::string对象,可以使用以下方法:
1. 使用CString的GetString()函数获取C-style字符串,然后使用std::string的构造函数进行转换:
```cpp
CString cstr = "Hello";
std::string str(cstr.GetString());
```
2. 使用CString的operator LPCSTR()函数将CString对象隐式转换为C-style字符串,然后使用std::string的构造函数进行转换:
```cpp
CString cstr = "Hello";
std::string str(static_cast<LPCSTR>(cstr));
```
需要注意的是,上述方法只适用于ANSI字符集(ASCII字符集)的CString对象。如果你使用的是Unicode字符集的CString对象,需要进行一些额外的处理。
CString 转std::string
以下是两种将CString转换为std::string的方法:
1.使用MFC的CString的GetString()函数和std::string的构造函数
```cpp
CString c_name = "convert";
std::string str = c_name.GetString();
```
2.使用ATL的CW2A宏和CString的GetString()函数
```cpp
CString c_name = _T("convert");
std::string str = CW2A(c_name.GetString());
```