cstring怎么转换为std::string
时间: 2024-09-03 09:03:52 浏览: 56
C ++:将MFC CString转换为std :: string
5星 · 资源好评率100%
在C++中,如果你有一个`CString`对象并且需要将其转换为`std::string`,你可以使用`atlconv`库提供的`WideCharToMultiByte`函数,如果你的`CString`是以宽字符(wchar_t)形式存储的;如果它是ANSI字符串(char),则可以直接转换。以下是两种情况的示例:
1. 如果`CString`是宽字符型:
```cpp
#include <atlconv.h>
std::wstring wide_str(cstr);
std::string multi_byte_str;
int len = ::MultiByteToWideChar(CP_UTF8, 0, wide_str.c_str(), -1, nullptr, 0);
multi_byte_str.resize(len);
::MultiByteToWideChar(CP_UTF8, 0, wide_str.c_str(), -1, &multi_byte_str[0], len);
```
2. 如果`CString`是ANSI字符串:
```cpp
std::string str(cstr);
```
直接赋值即可,因为`CString`通常是标准的ANSI字符串格式。
阅读全文