MFC字符串CString分割函数 简洁
介绍:
适用于.txt、.dat文件读取后运用字符串分割函数
这是我目前找得到的最简单的CString字符串分割函数
//***********************************
//字符分割函数
//***********************************
int Do::Div(const CString strLine, char split, CStringArray &strArray)
{
strArray.RemoveAll();//自带清空属性
CString temp = strLine;
int tag = 0;
while (1)
{
tag = temp.Find(split);
if (tag >= 0)
{
strArray.Add(temp.Left(tag));
temp = temp.Right(temp.GetLength() - tag - 1);
}
else { break; }
}
strArray.Add(temp);
return strArray.GetSize();
}
演示(VS2010/VS2017):
演示代码:
int Div(const CString strLine, char split, CStringArray &strArray)
{
strArray.RemoveAll();//自带清空属性
CString temp = strLine;
int tag = 0;
while (1)
{
tag = temp.Find(split);
if (tag >= 0)
{
strArray.Add(temp.Left(tag));
temp = temp.Right(temp.GetLength() - tag - 1);
}
else { break; }
}
strArray.Add(temp);
return strArray.GetSize();
}
void CCStringdemoDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnOK();
UpdateData(TRUE);
CStringArray array;
int n = Div(content, ',', array);//开始使用
int a = _ttoi(array[1]);//_ttoi CString->int
double b = _tstof(array[2]);//_tstof CString->double
CString c = array[3]; //CString直接来承接
CString strOut;
strOut.Format(_T("%d\r\n"),a);
sreOut1 += strOut;
strOut.Format(_T("%f\r\n"), b);
sreOut1 += strOut;
strOut.Format(_T("%s\r\n"), c);
sreOut1 += strOut;
UpdateData(FALSE);
}
演示结果:
参数解释:
形参strLine: 是用来承接需分割的内容 例如我的上例:A,99.9,11.23456,Success! 实参是 content
形参split: 是基于什么来分割 我的例子是英文的, 所以参数里面是 实参是 ‘,’
形参strArray: 分割后的内容按先后顺序放入 我的例子 实参是新建的CStringArray型 array
返回值n:返回strArray中的大小
分割后的内容全部装在strArray中