http://hi.baidu.com/sanvy4116/blog/item/bc5f8d001637ac83e850cd4b.html 转自这里
分割原理:根据分割字符将字符串分成几份,分割字符串必须不是第一个字符和最后一个字符,否则忽略
参数:lpSrc源字符串,chSep用于分割的字符,saResult用来存放分割后的字符串数组
返回值:分割后的字符串个数
int SplitString(LPCTSTR lpSrc,TCHAR chSep,CStringArray & saResult)
{
saResult.RemoveAll();
if(lpSrc==NULL)
return 0;
size_t iLen=strlen(lpSrc);
if(iLen==0)return 0;
//
size_t index=0;
CString sDest;
do{
if(lpSrc[index]==chSep)
{//如果当前遇见分割符
if(index)
{//不是开头的分割符才需要存字符串
saResult.Add(sDest);
}
sDest=_T("");
}
else
{
char s[2]={lpSrc[index],'/0'};
sDest.Append(s);
}
++index;
}while(index<iLen);
if(!sDest.IsEmpty())//存放最后分割符后的字符串
saResult.Add(sDest);
return (int)saResult.GetSize();
}
//测试代码,m_string为与EDIT控件关联的字符串变量
void CMyDlg::OnBnClickedOk()
{
UpdateData();
CStringArray sa;
SplitString(m_string,';',sa);
for(int i=0;i<sa.GetSize();++i)
{
CString s=sa.GetAt(i);
TRACE("%s/n",s);
}
TRACE("-----------------------------/n");
}