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中