日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VS2010/MFC編程入門之四十二(MFC常用類:CString類)

 好景宜人 2015-08-03

轉(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++代碼
  1. CString str1(_T("www."));  // 將常量字符串拷貝到str1      
  2. CString str2(str1);       // 將str1的內(nèi)容拷貝到str2    

       CString(LPCTSTR lpch, int nLength);

       將字符串lpch中的前nLength個(gè)字符拷貝到該CString對(duì)象。例如:

C++代碼
  1. CString str(_T("www."),3); // 構(gòu)造的字符串對(duì)象內(nèi)容為"www"  

       CString(TCHAR ch, int nLength = 1);

       使用此函數(shù)構(gòu)造的CString對(duì)象中將含有nLength個(gè)重復(fù)的ch字符。例如:

C++代碼
  1. CString str(_T('w'),3);  // str為"www"  

       2. CString類的大小寫轉(zhuǎn)換及順序轉(zhuǎn)換函數(shù)

       CString& MakeLower();

       將字符串中的所有大寫字符轉(zhuǎn)換為小寫字符。

       CString& MakeUpper();

       將字符串中的所有小寫字符轉(zhuǎn)換為大寫字符。

       CString& MakeReverse();

       將字符串中所有字符的順序顛倒。

       例如:

C++代碼
  1. CString str(_T("JiZhuoMi"));   
  2. str.MakeLower();   // str為"jizhuomi"   
  3. str.MakeUpper();   // str為"JIZHUOMI"   
  4. str.MakeReverse(); // str為"IMOUHZIJ"  

       3. CString對(duì)象的連接

       多個(gè)CString對(duì)象的連接可以通過重載運(yùn)算符+、+=實(shí)現(xiàn)。例如:

C++代碼
  1. CString str(_T("jizhuomi"));      // str內(nèi)容為"jizhuomi"   
  2. str = _T("www.") + str + _T("."); // str為"www.jizhuomi."   
  3. str += _T("com");                 // str為"www."  

VS2010/MFC編程入門之四十二(MFC常用類:CString類)

       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++代碼
  1. CString str1 = _T("JiZhuoMi");   
  2. CString str2 = _T("jizhuomi");   
  3. if (str1 == str2)   
  4. {   
  5.      // 因?yàn)閟tr1、str2不相等,所以不執(zhí)行下面的代碼   
  6.      ...   
  7. }   
  8. if (0 == str1.CompareNoCase(str2))   
  9. {   
  10.      // 因?yàn)椴粎^(qū)分大小寫比較時(shí),CompareNoCase函數(shù)返回0,所以執(zhí)行下面的代碼   
  11.      ...   
  12. }  

       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++代碼
  1. CString str1 = _T("jizhuomi");   
  2. CString str2 = str1.Left(3);    // str2為"jiz"   
  3. str2 = str1.Right(2);           // str2為"mi"   
  4. str2 = str1.Mid(1,3);           // str2為"izh"   
  5. str2 = str1.Mid(5);             // str2為"omi"  

       6. CString對(duì)象字符串的查找操作

       int Find(PCXSTR pszSub,int iStart=0) const throw( );
       int Find(XCHAR ch,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++代碼
  1. CString str = _T("jizhuomi");   
  2. int nIndex1 = str.Find(_T("zh"));   // nIndex1的值為2   
  3. int nIndex2 = str.FindOneOf(_T("mui")); // nIndex2的值為1   
  4. int nIndex3 = str.ReverseFind(_T('i'));  // nIndex3的值為7  

       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++代碼
  1. CString str = _T("jizhuomi");   
  2. int n1 = str.Replace(_T('i'), _T('j'));  // str為"jjzhuomj",n1為2   
  3. int n2 = str.Delete(1,2);        // str為"jhuomj",n2為6   
  4. int n3 = str.Remove(_T('j'));    // str為"huom",n3為2  

       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++代碼
  1. CString str;   
  2. int a = 1;   
  3. float b = 2.3f;   
  4. str.Format(_T("a=%d,b=%f"), a, b);  // str為"a=1,b=2.300000"  

        好了,關(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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多