出處: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();
}