mfc CString 转 string
时间: 2023-07-04 09:07:26 浏览: 106
可以使用以下代码将 MFC 中的 CString 类型转换为标准库中的 string 类型:
```c++
CString cstr = "Hello, World!";
std::string str((LPCTSTR)cstr, cstr.GetLength());
```
其中,LPCTSTR 是 MFC 中定义的字符指针类型,表示“指向空字符结尾的常规 Unicode 字符串的指针”。
上述代码中,将 CString 对象 cstr 转换为 LPCTSTR 指针类型,并使用该指针初始化 string 对象 str。需要注意的是,由于 CString 类型中可能包含 Unicode 字符,因此需要使用长度参数 cstr.GetLength() 来指定要转换的字符数。
另外,可以使用以下代码将 string 类型转换为 CString 类型:
```c++
std::string str = "Hello, World!";
CString cstr(str.c_str());
```
其中,使用 string 类型的成员函数 c_str() 返回一个 const char* 类型的指针,表示该字符串的字符数组地址。将该指针作为参数传递给 CString 构造函数,即可完成类型转换。
相关问题
MFC CString转string
在 MFC 中,可以通过使用 CStringT 模板类来实现 CString 类型和 string 类型之间的转换。CStringT 是一个通用的字符串模板类,可以用于表示 ANSI 或 Unicode 字符串。可以使用 CStringT 的 GetBuffer() 函数来获取 CString 类型的字符串缓冲区,然后通过将缓冲区指针传递给 string 类型的构造函数来创建一个 string 对象。同样,也可以使用 CStringT 的构造函数来将一个 string 对象转换为 CString 类型。
下面是一个将 CString 类型转换为 string 类型的示例代码:
```cpp
#include <afx.h>
#include <string>
using namespace std;
string CStringToString(const CString& cstr)
{
CT2A pszConvertedAnsiString(cstr);
string str(pszConvertedAnsiString);
return str;
}
```
在上面的代码中,首先使用 CT2A 宏将 CString 类型转换为 ANSI 字符串类型,然后使用 string 类型的构造函数将 ANSI 字符串转换为 string 对象。
注意,CT2A 宏用于将 CString 类型转换为 ANSI 字符串类型,如果 CString 类型表示的是 Unicode 字符串,则需要使用 CT2W 宏将其转换为 Unicode 字符串类型。另外,在将 CString 转换为 string 时,需要确保 CString 中的字符串是以 NULL 结尾的。
mfc CString 转 std string
可以使用以下代码将 MFC 的 CString 转换为 std::string:
```c++
CString cstr = "Hello, World!";
std::string str(CW2A(cstr.GetString()));
```
其中,`CW2A` 是一个 MFC 宏,用于将 Unicode 字符串转换为 ANSI 字符串。`cstr.GetString()` 返回 CString 对象的内部字符数组。
阅读全文