//参数说明:
strSrc: 需要分割的源字符串;
strDes: 存储分割后的各个字符串变量的目标变量;
szDiv: 分割字符
void decodeCString(CString strSrc, CStringArray& strDes, char szDiv)
{
strDes.RemoveAll();
for(int i=0; i<strSrc.GetLength(); i++)
{
if(strSrc.GetAt(i) == szDiv)
{
strDes.Add(strSrc.Left(i)); //去掉右边
int nLen = strDes.GetSize()-1;
for(int j=0; j <nLen; j++)
{
strDes[nLen] = strDes[nLen].Right(strDes[nLen].GetLength()-strDes[j].GetLength()-1); //去掉左边
}
}
}
}
使用例子:
CStringArray tmp;
CString str="123#234#476#987......";
CString aaa[MAX_PATH];
YourClass.decodeCString(str,tmp,'#');
int nIndex=tmp.GetSize();
int i=0;
while (i<nIndex)
{
aaa[i]=tmp.GetAt( i);//得到分割后的串,用CString数组来存
i++;
}
结果:(VC++6.0下测试成功)
aaa[0]:123
aaa[1]:234
aaa[2]:476
... ...
ZZ:http://blog.youkuaiyun.com/redpetallsg/archive/2007/05/23/1622761.aspx