CString 字符分割 函數

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


發佈了47 篇原創文章 · 獲贊 17 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章