出处:http://www.blogguy.cn/show-744-1.html
VC中自带的只有使用字符分割字符串的split函数,还羞答答的。
如果要实现字符串分割的话还得自己想办法,在php中这可是非常常规的功能呀!
看来先学php再学vc难度还蛮大的,要是倒过来恐怕会简单些。
说太远了,下面这个就是可以用字符串分割字符串的函数。
用法:
CString szSrc = _T("blogguy.cn||blogguy.cn||blogguy.cn");
CString szSplit = _T("||");
CStringArray szList;
int Count = SplitString(szSrc, szSplit, szList, FALSE);
CString a1= szList.GetAt(0);
CString a2= szList.GetAt(1);
CString a3= szList.GetAt(2);
返回结果:
Count 值为3
a1值为"blogguy.cn"
a2值为"blogguy.cn"
a3值为"blogguy.cn"
int SplitString(LPCTSTR lpszStr, LPCTSTR lpszSplit, CStringArray& rArrString, BOOL bAllowNullString)
{
rArrString.RemoveAll();
CString szStr = lpszStr;
szStr.TrimLeft();
szStr.TrimRight();
if(szStr.GetLength()==0)
{
return 0;
}
CString szSplit = lpszSplit;
if(szSplit.GetLength() == 0)
{
rArrString.Add(szStr);
return 1;
}
CString s;
int n;
do {
n = szStr.Find(szSplit);
if(n > 0)
{
rArrString.Add(szStr.Left(n));
szStr = szStr.Right(szStr.GetLength()-n-szSplit.GetLength());
szStr.TrimLeft();
}
else if(n==0)
{
if(bAllowNullString)
rArrString.Add(_T(""));
szStr = szStr.Right(szStr.GetLength()-szSplit.GetLength());
szStr.TrimLeft();
}
else
{
if((szStr.GetLength()>0)||bAllowNullString)
rArrString.Add(szStr);
break;
}
} while(1);
return rArrString.GetSize();
}