1. 程式人生 > >CString基本使用以及 和Char*之間的轉化

CString基本使用以及 和Char*之間的轉化

CString 的簡單使用

1.CString 物件的連線

CString 物件的連線是通過該類的“+”成員操作符進行的。“+”成員操作符也稱為連線操作符,可以把兩個字串連線起來,並返回一個CString的物件。但需要注意的是:兩個引數字串至少有一個是CString物件,另外一個可以是字元或者字元指標。

例如:

CString gray("Gray");

CString gray("Gray");

Cstring grayCat= gray + cat;

2.格式化字串

sprintf 常用於講格式化的資料寫入C風格的字元陣列中,而CString提供了類似功能的成員函式Format。次函式將一些列字元和值格式化並並存儲到

CString中。當將一個字串作為可選的引數傳遞時,必須將它顯式地對映為LPCSTR型別,其格式與printf函式具有相同的形式和功能。。

例如:

Int iCount;

Cstring str;

str.Format("The total count is %d",iCount);

格式化字串也是將其他型別的資料轉化為CString型別最常用的技巧。例如將整形轉為字串形式:

Int iCount;

Cstring str;

str.Format("%d",iCount);

3.CString型轉化為intlong

有時候需要將字串型別值轉化為intlong型,可以使用_ttoi_ttol

等函式。例如:

str1="  -98  dogs";

i=_ttoi(str1);

str2="885 dollars";

l= _ttol(str2);

轉化後

i=-98;

l=885;

4.字元指標(char*)CString相互轉換

定義字元指標變數pChar併為其賦值如下:

char* pChar ="Test only";

可以使用如下方法,從字元指標型別資料建立CString物件:

CString  str= "Testonly";

CString  str=("Test  only");

CString  str=pChar;

CString  str=(pChar);

CString物件到char*轉化的三種方法

a.使用強制型別轉換的方法將CString物件轉化為LPCTSTR型別。

CString類過載了LPCTSTR操作符,使用該操作符可以得到CString物件緩衝區的地址。因此,如果需要一個指向CString的字串指標,可以如下操作:

CString str("Test only");

LPCTSTR pChar= str;

b.使用CString物件的GetBuffer成員函式。

如果需要修改CString的內容,可以使用成員函式GetBuffer。該成員返回一個LPTSTR型別的緩衝區指標,由於它不是const型別,所以可以修改CString的內容。但需要主意的是,在使用CString物件其他的任何成員之前必須呼叫ReleaseBuffer成員函式。例如:

CString str("Test only");

LPTSTR pChar = str.GetBuffer(10);

// Directly access the buffer of CString object

strcpy(pChar,"Hello");

str.ReleaseBuffer();

c.使用強制型別轉化的方法將CString物件轉化為LPTSTR型別。

首先把CString強制型別轉化為LPCTSTR,以獲取CString物件中字串的地址,然後再強調型別轉化成LPTSTR,以便可以對其進行賦值操作。

CString str("Test only");

LPTSTR pChar =(LPTSTR)(LPCTSTR)str;