CString 转 string
时间: 2023-07-04 16:07:26 浏览: 90
可以使用 CString 的 GetBuffer 方法获取其内部的字符数组指针,然后将其转换为 std::string 类型。示例如下:
```cpp
CString cstr = "Hello, World!";
std::string str(cstr.GetBuffer());
```
需要注意的是,在获取字符数组指针后,必须调用 CString 的 ReleaseBuffer 方法来释放其内部缓冲区,否则可能会导致内存泄漏。示例如下:
```cpp
CString cstr = "Hello, World!";
const char* buffer = cstr.GetBuffer();
std::string str(buffer);
cstr.ReleaseBuffer();
```
另外,如果需要将 std::string 转换为 CString,可以使用 CString 的构造函数来实现:
```cpp
std::string str = "Hello, World!";
CString cstr(str.c_str());
```
相关问题
CString转string
CString是MFC框架中的一种字符串类型,可以通过下列方法将其转换为string类型:
```
CString cstr;
string str;
str = (LPCTSTR)cstr;
```
或者:
```
CString cstr;
string str;
str = cstr.GetBuffer();
```
请注意,在使用GetBuffer()方法时,需要对CString对象进行释放。
cstring转string
可以使用`std::string`的构造函数将`char*`或`const char*`类型的字符串转换为`std::string`类型。
例如:
```cpp
#include <cstring>
#include <string>
int main() {
const char* cstr = "Hello, world!";
std::string str(cstr);
return 0;
}
```
如果要将`CString`类型的字符串转换为`std::string`,可以先将其转换为`const char*`类型,然后再使用上述方法。
例如:
```cpp
#include <string>
#include <atlstr.h>
int main() {
CString cstr = _T("Hello, world!");
std::string str(CT2A(cstr));
return 0;
}
```
其中,`CT2A`是`ATL`库中的一个函数,用于将`CString`类型的字符串转换为`const char*`类型的字符串。
阅读全文