MFC簡單資料型別類及其轉換

2021-06-06 10:22:29 字數 2115 閱讀 5790

**:

簡單資料型別類

cstring物件由乙個可變長的字串行組成,它提供了一些簡單的函式和操作符成員(如連線和比較操作符等)。

1、cstring物件的連線

cstring物件的連線是通過該類的「+」成員操作符進行的,它可以將兩個字串合併起來,並返回乙個cstring物件。需要注意的是兩個引數字串中至少有乙個必須是cstring物件,另外乙個可以是字元或字元指標。

cstring gray("gray");

cstring cat("cat");

cstring graycat=gray+cat;

2、格式化字串

cstring類的成員函式format可以將一系列字元和值格式化並儲存到cstring中。當將乙個字串作為可選的引數傳遞時,必須將它顯式的對映為lpctstr。

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="test only";

cstring str("test only");

cstring str=pchar;

cstring str(pchar);

(1)使用強制型別轉換的方法將cstring物件轉換為lpctstr型別。cstring類過載了lpctstr操作符,使用該操作符可以得到cstring物件緩衝區的位址。因此,如果需要乙個指向cstring的字串指標,可以按照如下方式進行:

cstring str("test only");

lpctstr pchar=str;

(2)使用cstring物件的getbuffer成員函式。如果需要修改cstring的內容,可以使用成員函式getbuffer,該成員函式返回乙個lptstr型別的緩衝區位址,由於它不是const型,所以可以修改cstring的內容。但需要注意的是,在使用cstring物件其他的任何任何成員函式之前必須呼叫releasebuffer成員函式。

cstring str("test only");

lptstr pchar=str.getbuffer(10);//直接訪問cstring緩衝區

strcpy(pchar,"hello");

str.releasebuffer;

(3)使用強制型別轉換的方法將cstring物件轉換為lptstr 型別。首先把cstring強制型別轉換為lpctstr,以獲得cstring物件中字串的位址,然後再強制型別轉換為lptstr,以便對其進行賦值操作。

cstring str("test only");

lptstr pchar=(lptstr)(lpctstr)str;

lpstr-----------32位指標,指向乙個字串(cstring)

lpcstr---------32位指標,指向乙個常數字串

lptsre---------32位指標,指向乙個字串,此字串可以移植到unicode和dbcs(常用)

lpctstr-------32位指標,指向乙個常數字串,此字串可以移植到unicode和dbcs(常用)

140218 簡單資料型別和轉換

其實和c 差不多 幾種主要資料型別的測試 package work.w0218c public class datatype 點鐘法?package work.w0218c package work.w0218c public class datatypeconvetor package work....

簡單資料型別

number string boolean undefined null number型別 浮點數 var n 5e 324 科學計數法 5乘以10的 324次方 浮點數值的最高精度是 17 位小數,但在進行算術計算時其精確度遠遠不如整數 var result 0.1 0.2 結果不是 0.3,而是...

簡單資料型別

簡單資料型別 number string boolean undefined null number型別 數值字面量 數值的固定值的表示法 110 1024 60.5 浮點數浮點數的精度問題 浮點數var n 5e 324 科學計數法 5乘以10的 324次方 浮點數值的最高精度是 17 位小數,但...