CString基本使用以及 和Char*之間的轉化
CString 的簡單使用
1.CString 物件的連線
CString 物件的連線是通過該類的“+”成員操作符進行的。“+”成員操作符也稱為連線操作符,可以把兩個字串連線起來,並返回一個CString的物件。但需要注意的是:兩個引數字串至少有一個是CString物件,另外一個可以是字元或者字元指標。
例如:
CString gray("Gray");
CString gray("Gray");
Cstring grayCat= gray + cat;
2.格式化字串
sprintf 常用於講格式化的資料寫入C風格的字元陣列中,而CString提供了類似功能的成員函式Format。次函式將一些列字元和值格式化並並存儲到
例如:
Int iCount;
Cstring str;
str.Format("The total count is %d",iCount);
格式化字串也是將其他型別的資料轉化為CString型別最常用的技巧。例如將整形轉為字串形式:
Int iCount;
Cstring str;
str.Format("%d",iCount);
3.CString型轉化為int、long型
有時候需要將字串型別值轉化為int、long型,可以使用_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;