cstring 转换 为 string
时间: 2023-09-21 18:09:15 浏览: 54
MFC CString 可以通过以下方式转换为 std::string:
1. 使用 CString 的 GetBuffer() 函数获取字符数组指针,然后通过 std::string 的构造函数进行转换。
例如:
```
CString cstr = "Hello, world!";
std::string str(cstr.GetBuffer());
```
2. 使用 CString 的 operator LPCSTR() 函数将 CString 转换为 LPCSTR 类型的指针,然后通过 std::string 的构造函数进行转换。
例如:
```
CString cstr = "Hello, world!";
std::string str(cstr.operator LPCSTR());
```
需要注意的是,CString 转换为 std::string 时需要考虑字符编码的问题,例如如果 CString 使用的是 Unicode 编码,则需要使用 std::wstring 进行转换。
相关问题
cstring转换为string
您可以使用std::string的构造函数将C字符串转换为std::string。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
const char* cstr = "Hello, C++!";
std::string str(cstr);
std::cout << "C字符串: " << cstr << std::endl;
std::cout << "转换后的std::string: " << str << std::endl;
return 0;
}
```
该代码将C字符串`cstr`转换为`std::string`类型的变量`str`。输出结果将是:
```
C字符串: Hello, C++!
转换后的std::string: Hello, C++!
```
请注意,在进行此类转换时,请确保C字符串(以空字符结尾的字符数组)已经正确初始化。
CString 转换成string
要将 CString 转换为 std::string,可以使用 CStringT 类模板的 GetString 方法。以下是一个示例代码:
```cpp
#include <iostream>
#include <atlstr.h> // 包含 CStringT 头文件
int main() {
CString str = "HelloWorld";
std::string convertedStr = CT2CA(str);
std::cout << "Converted string: " << convertedStr << std::endl;
return 0;
}
```
在上述示例代码中,我们使用了 ATL(Active Template Library)的 CStringT 类模板来进行字符串转换。`CT2CA` 是 CStringT 类模板的成员函数,用于将宽字符字符串(CString)转换为多字符字符串(std::string)。
在 `main` 函数中,我们创建了一个 CString 对象 "HelloWorld",然后使用 `CT2CA` 方法将其转换为 std::string 对象。
编译并运行上述代码,你将得到以下输出:
```
Converted string: HelloWorld
```
这样,你就可以将 CString 转换为 std::string。