c++如何把Cstring cstr=“c\:1234qqw”强转成string类型
时间: 2024-03-16 17:45:54 浏览: 243
你可以使用C++中的string类的构造函数来实现CString转换为string类型。具体方法如下:
```c++
CString cstr = "c:\\1234qqw"; // 原始CString字符串
string str((LPCTSTR)cstr); // 转换为string类型
```
其中,`LPCTSTR`是C++中的一种指针类型,表示指向const TCHAR类型的指针。在CString转换为string类型时,需要将`LPCTSTR`类型的指针作为string类的构造函数参数传入,即可完成转换。
相关问题
C++ CString转std::string
在C++中,CString是MFC(Microsoft Foundation Classes)库中的一个字符串类,而std::string是C++标准库中的字符串类。如果你想将一个CString对象转换为std::string对象,可以使用以下方法:
1. 使用CString的GetString()函数获取C-style字符串,然后使用std::string的构造函数进行转换:
```cpp
CString cstr = "Hello";
std::string str(cstr.GetString());
```
2. 使用CString的operator LPCSTR()函数将CString对象隐式转换为C-style字符串,然后使用std::string的构造函数进行转换:
```cpp
CString cstr = "Hello";
std::string str(static_cast<LPCSTR>(cstr));
```
需要注意的是,上述方法只适用于ANSI字符集(ASCII字符集)的CString对象。如果你使用的是Unicode字符集的CString对象,需要进行一些额外的处理。
if (m_GerberSuffixA.find("*") != string::npos || m_GerberSuffixB.find("*") != string::npos)m_GerberSuffixA变为CString,修改代码
如果要在C++中检测`m_GerberSuffixA`和`m_GerberSuffixB`中是否存在以"*"结尾的情况,而不仅仅是查找是否大于`string::npos`(表示未找到),可以使用`std::string`的成员函数`find()`结合逻辑运算符来实现条件判断。假设`m_GerberSuffixA`和`m_GerberSuffixB`是`std::string`类型的变量:
```cpp
if ((m_GerberSuffixA.find("*") != std::string::npos) ||
(m_GerberSuffixB.find("*") != std::string::npos)) {
// 如果找到*,将m_GerberSuffixA转换为CString(这里假设 CString 是 C++ 类)
if (m_GerberSuffixA.find("*") != std::string::npos) {
m_GerberSuffixA = CString(m_GerberSuffixA);
}
if (m_GerberSuffixB.find("*") != std::string::npos) {
m_GerberSuffixB = CString(m_GerberSuffixB);
}
}
```
这段代码首先检查两个字符串中是否有"*",如果有,则将含有"*"的部分赋值给对应的`CString`实例。
阅读全文