CString 转std::string
时间: 2023-12-13 07:32:16 浏览: 99
以下是两种将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());
```
相关问题
CString 转 std::string
要将CString转换为std::string,有几种方法可以实现。以下是其中的三种方法:
1.使用CString的GetString()函数和std::string的构造函数,将CString转换为LPCTSTR,然后将LPCTSTR转换为std::string。例如:
CString c_name = "convert";
std::string str = c_name.GetString();
2.使用CString的GetString()函数和ATL的CW2A()函数,将CString转换为char*,然后将char*转换为std::string。例如:
CString c_name = _T("convert");
std::string str = CW2A(c_name.GetString());
3.使用CString的GetBuffer()函数和std::string的构造函数,将CString转换为char*,然后将char*转换为std::string。例如:
CString strCS("HelloWorld");
std::string strS;
strS = strCS.GetBuffer(0);
要将CString转换为std::string,有几种方法可以实现。以下是其中的三种方法:
1.使用CString的GetString()函数和std::string的构造函数,将CString转换为LPCTSTR,然后将LPCTSTR转换为std::string。例如:
CString c_name = "convert";
std::string str = c_name.GetString();
2.使用CString的GetString()函数和ATL的CW2A()函数,将CString转换为char*,然后将char*转换为std::string。例如:
CString c_name = _T("convert");
std::string str = CW2A(c_name.GetString());
3.使用CString的GetBuffer()函数和std::string的构造函数,将CString转换为char*,然后将char*转换为std::string。例如:
CString strCS("HelloWorld");
std::string strS;
strS = strCS.GetBuffer(0);
cstring 转 std::string
在 C++ 中,我们可以使用两种方法将 C 风格的字符串(即以空字符 '\0' 结尾的字符数组)转换为 std::string 类型。
方法一是使用 std::string 的构造函数,将 C 风格的字符串作为参数传递给构造函数即可完成转换,例如:
```
const char* cstr = "Hello, World!"; // 假设已有一个 C 风格的字符串
std::string str(cstr); // 将 C 风格的字符串转换为 std::string 对象
```
方法二是使用 std::string 的赋值操作符,直接将 C 风格的字符串赋值给 std::string 对象,例如:
```
const char* cstr = "Hello, World!"; // 假设已有一个 C 风格的字符串
std::string str; // 声明一个空的 std::string 对象
str = cstr; // 将 C 风格的字符串赋值给 std::string 对象
```
无论使用哪种方法,C 风格的字符串会被复制到 std::string 对象中,从而得到一个具有相同内容的字符串。其中,方法一适用于在创建 std::string 对象时直接进行转换,而方法二适用于已有 std::string 对象的更新或赋值操作。
需要注意的是,在进行 C 风格字符串转换时,要确保 C 风格的字符串以空字符 '\0' 结尾,以保证正确的转换结果。