![]() ![]() CString( ); 例:CString csStr; CString( const CString& stringSrc ); 例:CString csStr("ABCDEF中文123456"); CString csStr2(csStr); CString( TCHAR ch, int nRepeat = 1 ); 例:CString csStr('a',5); //csStr="aaaaa" CString( LPCTSTR lpch, int nLength ); 例:CString csStr("abcdef",3); //csStr="abc" CString( LPCWSTR lpsz ); 例:wchar_t s[]=L"abcdef"; CString csStr(s); //csStr=L"abcdef" CString( const unsigned char* psz ); 例:const unsigned char s[]="abcdef"; const unsigned char* sp=s; CString csStr(sp); //csStr="abcdef" CString( LPCSTR lpsz ); 例:CString csStr("abcdef"); //csStr="abcdef" 返回字符串的長(zhǎng)度,不包含結(jié)尾的空字符。 例:csStr="ABCDEF中文123456"; printf("%d",csStr.GetLength()); //16 顛倒字符串的順序 例:csStr="ABCDEF中文123456"; csStr.MakeReverse(); cout<<csStr; //654321文中FEDCBA 將小寫字母轉(zhuǎn)換為大寫字母 例:csStr="abcdef中文123456"; csStr.MakeUpper(); cout<<csStr; //ABCDEF中文123456 將大寫字母轉(zhuǎn)換為小寫字母 例:csStr="ABCDEF中文123456"; csStr.MakeLower(); cout<<csStr; //abcdef中文123456 區(qū)分大小寫比較兩個(gè)字符串,相等時(shí)返回0,大于時(shí)返回1,小于時(shí)返回-1 例:csStr="abcdef中文123456"; csStr2="ABCDEF中文123456"; cout<<csStr.CompareNoCase(csStr2); //0 不區(qū)分大小寫比較兩個(gè)字符串,相等時(shí)返回0,大于時(shí)返回1,小于時(shí)返回-1 例:csStr="abcdef中文123456"; csStr2="ABCDEF中文123456"; cout<<csStr.CompareNoCase(csStr2); //-1 刪除字符,刪除從下標(biāo)nIndex開始的nCount個(gè)字符 例:csStr="ABCDEF"; csStr.Delete(2,3); cout<<csStr; // ABF //當(dāng)nIndex過大,超出對(duì)像所在內(nèi)存區(qū)域時(shí),函數(shù)沒有任何操作。 //當(dāng)nIndex為負(fù)數(shù)時(shí),從第一個(gè)字符開始刪除。 //當(dāng)nCount過大,導(dǎo)致刪除字符超出對(duì)像所在內(nèi)存區(qū)域時(shí),會(huì)發(fā)生無(wú)法預(yù)料的結(jié)果。 //當(dāng)nCount為負(fù)數(shù)時(shí),函數(shù)沒有任何操作。 int Insert( int nIndex, LPCTSTR pstr ) 在下標(biāo)為nIndex的位置,插入字符或字符串。返回插入后對(duì)象的長(zhǎng)度 例:csStr="abc"; csStr.Insert(2,'x'); cout<<csStr; //abxc csStr.Insert(2,"xyz"); cout<<csStr; //abxyzc //當(dāng)nIndex為負(fù)數(shù)時(shí),插入在對(duì)象開頭 //當(dāng)nIndex超出對(duì)象末尾時(shí),插入在對(duì)象末尾 移除對(duì)象內(nèi)的指定字符。返回移除的數(shù)目 例:csStr="aabbaacc"; csStr.Remove('a'); cout<<csStr; //bbcc int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew ); 替換字串 例:csStr="abcdef"; csStr.Replace('a','x'); cout<<csStr; //xbcdef csStr="abcdef"; csStr.Replace("abc","xyz"); cout<<csStr; //xyzdef void TrimLeft( TCHAR chTarget ); void TrimLeft( LPCTSTR lpszTargets ); 從左刪除字符,被刪的字符與chTarget或lpszTargets匹配,一直刪到第一個(gè)不匹配的字符為止 例:csStr="aaabaacdef"; csStr.TrimLeft('a'); cout<<csStr; //baacdef csStr.TrimLeft("ab"); cout<<csStr; //cdef //無(wú)參數(shù)時(shí)刪除空格 void TrimRight( TCHAR chTarget ); void TrimRight( LPCTSTR lpszTargets ); 從右刪除字符,被刪的字符與chTarget或lpszTargets匹配,一直刪到第一個(gè)不匹配的字符為止 例:csStr="abcdeaafaaa"; csStr.TrimRight('a'); cout<<csStr; //abcdeaaf csStr="abcdeaafaaa"; csStr.TrimRight("fa"); cout<<csStr; //abcde //無(wú)參數(shù)時(shí)刪除空格 清空 例:csStr="abcdef"; csStr.Empty(); printf("%d",csStr.GetLength()); //0 測(cè)試對(duì)象是否為空,為空時(shí)返回零,不為空時(shí)返回非零 例:csStr="abc"; cout<<csStr.IsEmpty(); //0; cout<<csStr.IsEmpty(); //1; int Find( LPCTSTR lpszSub ) const; int Find( TCHAR ch, int nStart ) const; int Find( LPCTSTR pstr, int nStart ) const; 查找字串,nStart為開始查找的位置。未找到匹配時(shí)返回-1,否則返回字串的開始位置 例:csStr="abcdef"; cout<<csStr.Find('b'); //1 cout<<csStr.Find('b',3); //-1 cout<<csStr.Find('b',0); //1 cout<<csStr.Find("de",4); //-1 cout<<csStr.Find("de",0); //3 //當(dāng)nStart超出對(duì)象末尾時(shí),返回-1。 //當(dāng)nStart為負(fù)數(shù)時(shí),返回-1。 查找lpszCharSet中任意一個(gè)字符在CString對(duì)象中的匹配位置。未找到時(shí)返回-1,否則返回字串的開始位置 例:csStr="abcdef"; cout<<csStr.FindOneOf("cxy"); //2 返回對(duì)象中與lpszCharSet中任意匹配的第一個(gè)字符之前的子串 例:csStr="abcdef"; cout<<csStr.SpanExcluding("cf"); //ab 從對(duì)象中查找與lpszCharSe中任意字符不匹配的字符,并返回第一個(gè)不匹配字符之前的字串 例:csStr="abcdef"; cout<<csStr.SpanIncluding("fdcba"); //abcd 從后向前查找第一個(gè)匹配,找到時(shí)返回下標(biāo)。沒找到時(shí)返回-1 例:csStr="abba"; cout<<csStr.ReverseFind('a'); //3 void Format( UINT nFormatID, ... ); 格式化對(duì)象,與C語(yǔ)言的sprintf函數(shù)用法相同 例:csStr.Format("%d",13); cout<<csStr; //13 返回下標(biāo)為nIndex的字符,與字符串的[]用法相同 例:csStr="abcdef"; cout<<csStr.GetAt(2); //c //當(dāng)nIndex為負(fù)數(shù)或超出對(duì)象末尾時(shí),會(huì)發(fā)生無(wú)法預(yù)料的結(jié)果。 給下標(biāo)為nIndex的字符重新賦值 例:csStr="abcdef"; csStr.SetAt(2,'x'); cout<<csStr; //abxdef //當(dāng)nIndex為負(fù)數(shù)或超出對(duì)象末尾時(shí),會(huì)發(fā)生無(wú)法預(yù)料的結(jié)果。 從左取字串 例:csStr="abcdef"; cout<<csStr.Left(3); //abc //當(dāng)nCount等于0時(shí),返回空。 //當(dāng)nCount為負(fù)數(shù)時(shí),返回空。 //當(dāng)nCount大于對(duì)象長(zhǎng)度時(shí),返回值與對(duì)象相同。 從右取字串 例:csStr="abcdef"; cout<<csStr.Right(3); //def //當(dāng)nCount等于0時(shí),返回空。 //當(dāng)nCount為負(fù)數(shù)時(shí),返回空。 //當(dāng)nCount大于對(duì)象長(zhǎng)度時(shí),返回值與對(duì)象相同。 CString Mid( int nFirst, int nCount ) const; 從中間開始取字串 例:csStr="abcdef"; cout<<csStr.Mid(2); //cdef cout<<csStr.Mid(2,3); //cde //當(dāng)nFirst為0和為負(fù)數(shù)時(shí),從第一個(gè)字符開始取。 //當(dāng)nFirst等于對(duì)象末尾時(shí),返回空字串。 //當(dāng)nFirst超出對(duì)象末尾時(shí),會(huì)發(fā)生無(wú)法預(yù)料的結(jié)果。 //當(dāng)nCount超出對(duì)象末尾時(shí),返回從nFirst開始一直到對(duì)象末尾的字串 //當(dāng)nCount為0和為負(fù)數(shù)時(shí),返回空字串。 申請(qǐng)新的空間,并返回指針 例:csStr="abcde"; LPTSTR pStr=csStr.GetBuffer(10); strcpy(pStr,"12345"); csStr.ReleaseBuffer(); pStr=NULL; cout<<csStr //12345 //使用完GetBuffer后,必須使用ReleaseBuffer以更新對(duì)象內(nèi)部數(shù)據(jù),否則會(huì)發(fā)生無(wú)法預(yù)料的結(jié)果。 使用GetBuffer后,必須使用ReleaseBuffer以更新對(duì)象內(nèi)部數(shù)據(jù) 例:csStr="abc"; LPTSTR pStr=csStr.GetBuffer(10); strcpy(pStr,"12345"); cout<<csStr.GetLength(); //3(錯(cuò)誤的用法) csStr.ReleaseBuffer(); cout<<csStr.GetLength(); //5(正確) //CString對(duì)象的任何方法都應(yīng)在ReleaseBuffer之后調(diào)用 申請(qǐng)新的空間,并返回指針 例:csStr="abc"; csStr.GetBufferSetLength(20); cout<<csStr; //abc count<<csStr.GetLength(); //3; //使用GetBufferSetLength后可以不必使用ReleaseBuffer。 |
聯(lián)系客服