1. 程式人生 > >VC++中擷取字串的方法

VC++中擷取字串的方法

在VC++程式設計中,我們有時會遇到關於擷取字串的問題,對於CString型別字串的擷取VC++中有現成的函式可供使用,主要是:CStringMid (int nFirst, int nCount);和BOOL AfxExtractSubString (CString&rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = 10);這兩個函式。

    這兩個函式非常好用,而且值得一說的是,其中的AfxExtractSubString函式並未公開,在MSDN中也差不到相關的說明,但是在MSDN的例子裡卻常常出現,非常好用。下面先解釋一下這兩個函式:

    ⑴  CStringMid (int nFirst,int nCount);

    函式功能:此函式從目標CString物件中提取一個長度為nCount個字元的子串並返回,從nFirst(從零開始的索引)指定的位置開始。

    nFirst:開始位置(索引)。

    nCount:提取長度。

    ⑵  BOOL AfxExtractSubString (CString&rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = 10);

    函式功能:此函式從目標字串lpszFullString中,根據分割標誌

chSep,取出第iSubString個子串,放入結果串rString

    ⑴  目標字串:

m_str = "說 謊 鼻子 會 變 長";

    ⑵  利用Mid函式計算目標串中關鍵詞的個數:

int tmplen=0; // 關鍵詞個數
for (int i=0;i<m_str.GetLength();i++)
{
	if (m_str.Mid(i,1)==' ')
	{
		tmplen++;
	}
}

    ⑶  利用AfxExtractSubString函式擷取所有的關鍵詞:

CString* gjcArray=new CString [tmplen]; // 儲存所有關鍵詞的字串陣列
for (int i=0;i<tmplen;i++)
{
	AfxExtractSubString(gjcArray[i], m_str, i, ' ');
}