轉(zhuǎn)自:http://www./software/228.html 上一節(jié)雞啄米講了分割窗口的有關(guān)知識(shí),本節(jié)開始講解MFC的一些常用類,先來說說CString類。 CString類簡(jiǎn)介 CString類作為MFC的常用類,當(dāng)之無愧。可以這樣說,只要是從事MFC開發(fā),基本都會(huì)遇到使用CString類的場(chǎng)合。因?yàn)樽址氖褂帽容^普遍,而CString類又提供了對(duì)字符串的便捷操作,所以它給MFC開發(fā)人員帶來了高的開發(fā)效率,受到了開發(fā)者的歡迎。 大家使用VS2010的話,可能會(huì)見到CStringT,實(shí)際上它是一個(gè)操作可變長(zhǎng)度字符串的模板類。CStringT模板類有三個(gè)實(shí)例:CString、CStringA和CStringW,它們分別提供對(duì)TCHAR、char和wchar_t字符類型的字符串的操作。char類型定義的是Ansi字符,wchar_t類型定義的是Unicode字符,而TCHAR取決于MFC工程的屬性對(duì)話框中的Configuration Properties->General->Character Set屬性,如果此屬性為Use Multi-Byte Character Set,則TCHAR類型定義的是Ansi字符,而如果為Use Unicode Character Set,則TCHAR類型定義的是Unicode字符。 三個(gè)字符串類的操作是一樣的,只是處理的字符類型不同。雞啄米以CString類為講解對(duì)象。 CString類的字符串操作 1. CString類的構(gòu)造函數(shù) CString類有很多構(gòu)造函數(shù),這里只介紹幾個(gè)比較常用的: CString(const CString& stringSrc); 將一個(gè)已經(jīng)存在的CString對(duì)象stringSrc的內(nèi)容拷貝到該CString對(duì)象。例如: C++代碼
CString(LPCTSTR lpch, int nLength); 將字符串lpch中的前nLength個(gè)字符拷貝到該CString對(duì)象。例如: C++代碼
CString(TCHAR ch, int nLength = 1); 使用此函數(shù)構(gòu)造的CString對(duì)象中將含有nLength個(gè)重復(fù)的ch字符。例如: C++代碼
2. CString類的大小寫轉(zhuǎn)換及順序轉(zhuǎn)換函數(shù) CString& MakeLower(); 將字符串中的所有大寫字符轉(zhuǎn)換為小寫字符。 CString& MakeUpper(); 將字符串中的所有小寫字符轉(zhuǎn)換為大寫字符。 CString& MakeReverse(); 將字符串中所有字符的順序顛倒。 例如: C++代碼
3. CString對(duì)象的連接 多個(gè)CString對(duì)象的連接可以通過重載運(yùn)算符+、+=實(shí)現(xiàn)。例如: C++代碼
4. CString對(duì)象的比較 CString對(duì)象的比較可以通過==、!=、<、>、<=、>=等重載運(yùn)算符實(shí)現(xiàn),也可以使用Compare和CompareNoCase成員函數(shù)實(shí)現(xiàn)。 int Compare(PCXSTR psz) const; 將該CString對(duì)象與psz字符串比較,如果相等則返回0,如果小于psz則返回值小于0,如果大于psz則返回值大于0。 int CompareNoCase(PCXSTR psz) const throw(); 此函數(shù)與Compare功能類似,只是不區(qū)分大小寫。 例如: C++代碼
5. CString對(duì)象字符串的提取操作 CString Left(int nCount) const; 提取該字符串左邊nCount個(gè)字符的子字符串,并返回一個(gè)包含這個(gè)子字符串的拷貝的CString對(duì)象。 CString Right(int nCount) const; 提取該字符串右邊nCount個(gè)字符的子字符串,并返回一個(gè)包含這個(gè)子字符串的拷貝的CString對(duì)象。 CString Mid(int iFirst,int nCount) const; 提取該字符串中以索引iFirst位置開始的nCount個(gè)字符組成的子字符串,并返回一個(gè)包含這個(gè)子字符串的拷貝的CString對(duì)象。 CString Mid(int iFirst) const; 提取該字符串中以索引iFirst位置開始直至字符串結(jié)尾的子字符串,并返回一個(gè)包含這個(gè)子字符串的拷貝的CString對(duì)象。 例如: C++代碼
6. CString對(duì)象字符串的查找操作 int Find(PCXSTR pszSub,int iStart=0) const throw( ); 在CString對(duì)象字符串的iStart索引位置開始,查找子字符串pszSub或字符ch第一次出現(xiàn)的位置,如果沒有找到則返回-1。 int FindOneOf(PCXSTR pszCharSet) const throw( ); 查找pszCharSet字符串中的任意字符,返回第一次出現(xiàn)的位置,找不到則返回-1。 int ReverseFind(XCHAR ch) const throw(); 從字符串末尾開始查找指定的字符ch,返回其位置,找不到則返回-1。這里要注意,盡管是從后向前查找,但是位置的索引還是要從開始算起。 C++代碼
7. CString類對(duì)象字符串的替換與刪除 int Replace(PCXSTR pszOld,PCXSTR pszNew); 用字符串pszNew替換CString對(duì)象中的子字符串pszOld,返回替換的字符個(gè)數(shù)。 int Replace(XCHAR chOld,XCHAR chNew); 用字符chNew替換CString對(duì)象中的字符chOld,返回替換的字符個(gè)數(shù)。 int Delete(int iIndex,int nCount = 1); 從字符串中刪除iIndex位置開始的nCount個(gè)字符,返回刪除操作后的字符串的長(zhǎng)度。 int Remove(XCHAR chRemove); 刪除字符串中的所有由chRemove指定的字符,返回刪除的字符個(gè)數(shù)。 例如: C++代碼
8. CString類的格式化字符串方法 使用CString類的Format成員函數(shù)可以將int、short、long、float、double等數(shù)據(jù)類型格式化為字符串對(duì)象。 void __cdecl Format(PCXSTR pszFormat,[, argument]...); 參數(shù)pszFormat為格式控制字符串;參數(shù)argument可選,為要格式化的數(shù)據(jù),一般每個(gè)argument在pszFormat中都有對(duì)應(yīng)的表示其類型的子字符串,int型的argument對(duì)應(yīng)的應(yīng)該是"%d",float型的應(yīng)對(duì)應(yīng)"%f",等等。 例如: C++代碼
好了,關(guān)于CString類的內(nèi)容就講到這里了,用法不少,但仍不全,大家可以查看MSDN深入學(xué)習(xí)。雞啄米謝謝大家耐心讀完本節(jié)教程。 除非特別注明,雞啄米文章均為原創(chuàng)
轉(zhuǎn)載請(qǐng)標(biāo)明本文地址:http://www./software/228.html
2012-8-27 21:34:51
作者:雞啄米
分類:軟件開發(fā)
瀏覽:66187
評(píng)論:16
|
|