MFC C++ 一个字符串按照特殊字符分割,然后保存在一个数组中
时间: 2024-10-20 14:08:45 浏览: 34
在MFC的C++中,如果你想要将一个字符串按照特定的分隔符拆分成多个子串并存储在一个数组中,你可以使用`split`函数结合`CStringArray`。`CStringArray`是MFC中处理字符串数组的一个便利工具。下面是一个示例,展示如何操作:
```cpp
#include "afxwin.h"
#include "atlstr.h"
void SplitStringIntoArray(CString strInput, const TCHAR delimiter, CStringArray& arrOutput)
{
// 使用find和substr进行逐段分割
int pos = -1;
while ((pos = strInput.Find(delimiter)) != -1)
{
// 提取子串到arrOutput
if (pos > 0)
{
arrOutput.Add(strInput.Mid(0, pos));
}
// 移除已处理的部分,以便下一次查找
strInput = strInput.Mid(pos + 1);
}
// 添加最后一个完整的子串
if (!strInput.IsEmpty())
{
arrOutput.Add(strInput);
}
}
int main()
{
CString str("Hello;World;This;Is;A;Test");
CStringArray arrOutput;
SplitStringIntoArray(str, _T(";"), arrOutput);
// 现在arrOutput包含了["Hello", "World", "This", "Is", "A", "Test"]
for (size_t i = 0; i < arrOutput.GetCount(); ++i)
{
AFX_TRACE(arrOutput[i]);
}
return 0;
}
```
在这个例子中,我们使用";"作为分隔符,将字符串strInput拆分为多个部分,并存储在`arrOutput`数组中。
阅读全文