C++字符串分割
CString CMainFrame::StringDivide(CString & csDivideStr, CString csSign, int nMuliple/* = 0*/)
{
int nSignIndex = csDivideStr.Find(csSign);
CString csReturn;
if (-1 == nSignIndex)
{
csReturn = csDivideStr;
csDivideStr = _T("");
}
else if (0 == nSignIndex && nMuliple)
{
int nSignLength = csSign.GetLength();
while (0 == nSignIndex)
{
csDivideStr.Delete(0, nSignLength);
nSignIndex = csDivideStr.Find(csSign);
}
if (-1 == nSignIndex)
{
csReturn = csDivideStr;
csDivideStr = _T("");
}
else
{
csReturn = csDivideStr.Left(nSignIndex);
csDivideStr.Delete(0, nSignIndex + nSignLength);
}
}
else
{
csReturn = csDivideStr.Left(nSignIndex);
int nSignLength = csSign.GetLength();
csDivideStr.Delete(0, nSignIndex + nSignLength);
}
return csReturn;
}
CString csVal, csData;
csData = ”A,B,C“
csVal = StringDivide(csData, L",", 0);//csVal = A; csData = B,C