MFC之CString物件的各種函式

2021-06-18 02:34:20 字數 2375 閱讀 1605

一、mfc常用類之

string 類

1、cstring的建構函式:

cstring(

const cstring& stringsrc);

將乙個已經存在的cstring 

物件 stringsrc 

的內容拷貝到該 

cstring 

物件。例如:

cstring str1(_t(「www.google.com」)) ; //將常量字串拷貝到

str1 

cstring str2(str1) ; //將

str1

的內容拷貝到

str2

cstring (lpctstr lpch , int nlength) ;

將字串lpch 

中的前 

nlength 

個字元拷貝到該

cstring 

物件。例如:

cstring str(_t(「www.google.com」), 3) ; //構造的字串物件的內容為」www」

2、cstring 類的大小寫轉換及順序轉換函式

cstring& makelower() ; //將字串中的所有的小寫字母改變為大寫字母

cstring& makeupper(0 ; //******************大寫

**********

小寫****

cstring& makereverse() ; //將字串中的所有字元的順序顛倒

exp:

cstring str(_t(「chenwenju」)) ;

3、string 物件的連線

多個string 

物件的連線可以通過過載運算子 + ,

+= 實現。

cstring str1(_t(「www.』)) ;

cstring str2(_t(「google.com」)) ;

cstring str2 = str1 + str2 ; //str3 的內容為」www.google.com」

4、cstring 的物件的比較

cstring 的物件的比較可以通過

==, 

!= ,

< , > ,<= ,》= 

等過載運算子實現, 也可以使用

compare 

和 comparenocase 

成員函式實現。

int compare(pcxstr psz) const ;  //將該

cstring 

物件與 

psz 

字串比較,如果相等的話就返回

0 ,小於

psz 

就返回小於

0 ,大於

psz就返回值大於0 。

comparenocase() 

函式與cpmpare() 

函式的用法相似,只是不區分大小寫。

cstring str1(_t(「chenwenju」)) ;

cstring str2(_t(「chenwenju」)) ; 

if(str1 == str2)

//因為

str1

不等於str2 

,所以不執行此處的**

if(0 == str1.comparenocase(str2))

//因為不區分大小寫,所以執行此處的**

5、cstring 物件字串的提取操作

cstring left(int ncount) const ; //提取該字串左邊的

ncount

個字元,並返回乙個包含這個子字串的拷貝的

cstring

物件。

cstring right(int ncount) ;

cstring mid(int ifirst, int ncount) ;

cstring mid(int ifirst) ; //到結尾處

6、cstring 物件字串的查詢操作

int find(pcxstr pszsub, int istart = 0)  const throw();

在cstring 

物件字串的

istatrt 

索引位置開始,查詢子字串

pszsub

第一次出現的位置,如果沒有找到則返回

-1 。

int findoneof(pcxstr pszcharset) const throw() ;//查詢

pszcharset 

字串中的任意字元,返回第一次出現的位置,找不到返回

-1 。

int reversefind(xchar ch) const throw() ;

以上只是cstring類物件的常用函式,在這裡做一下總結。

MFC的CString的find的使用

名稱 cstring find 在乙個較大的 字元 串中查詢字元或子字串 int find tchar ch const int find lpctstr lpszsub const int find tchar ch,int nstart const int find lpctstr pstr,i...

MFC的CString的內部實現分析

mfc的cstring是字串管理類,其為了實現高效率的緩衝管理,使用了引用記數及copybeforewrite技術。這在一定程度上加大了其神秘感和理解難度。好在他的 是公開的,所以可以給我們研究它的內部實現提供條件。下面就來看看到底是如何實現的。由於不同版本的msvc其cstring實現有些許差別,...

關於MFC的CString 訪問越界問題

1.很多控制項可能都要使用cstring,比如ctooltipctrl.gettext 如果我一開始,m tooltip.addtool this,m str,rect,tts alwaystip 其中 m str 的長度超過256位元組,注意是位元組,如果是unicode下,那就128 tchar...