資源描述:
《c++數(shù)據(jù)類型轉(zhuǎn)換技巧》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、類型轉(zhuǎn)換是將一種類型的值映射為另一種類型的值。進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。是在實(shí)際代碼編寫中經(jīng)常遇到的問題,特別是字符串和其他類型的轉(zhuǎn)換。1.將字符串轉(zhuǎn)換為整數(shù)(1)轉(zhuǎn)換函數(shù)//雙精度函數(shù)doubleatof(constchar*string);double_wtof(constwchar_t*string);自適應(yīng)TCHAR:_tstof、_ttofVS2005:_atof_l、_wtof_l、_atodbl、_atodbl_l//整型函數(shù)intatoi(constchar*string);_int64_atoi64(constchar*string);int_wtoi(constwch
2、ar_t*string);_int64_wtoi64(constchar*string);自適應(yīng)TCHAR:_tstoi、_ttoi、_tstoi64、_ttoi64VS2005:_atoi_l、_wtoi_l、_atoi64_l、_wtoi64_l//長整形函數(shù)longatol(constchar*string);long_wtol(constwchar_t*string);自適應(yīng)TCHAR:_tstoi、_ttoiVS2005:_atoi_l、_wtoi_l可參考:http://blog.sina.com.cn/s/blog_4135af570100b0d9.html(2)代碼
3、參考Cstringting="1234";intnum=atoi(ting);num的值為1234.CStringting="1234";doublenum=atof(ting);最終結(jié)果:num值為1234.00000000000002.int轉(zhuǎn)換為字符串cahr*_itoa(intvalue,char*string,intradix);char*_i64toa(_int64value,char*string,intradix);char*_ui64toa(unsigned_int64value,char*string,intradix);wchar_t*_itow(intval
4、ue,wchar_t*string,intradix);wchar_t*_i64tow(_int64value,wchar_t*string,intradix);wchar_t*_ui64tow(unsigned_int64value,wchar_t*string,intradix);參數(shù)的意義:value是指要轉(zhuǎn)換的整數(shù),sring是用來存放轉(zhuǎn)換后結(jié)果的便利,radix是用來說明轉(zhuǎn)換成幾進(jìn)制的數(shù)據(jù),默認(rèn)值是十進(jìn)制數(shù)的。轉(zhuǎn)換的進(jìn)制范圍是二進(jìn)制到三十六進(jìn)制。示例代碼:intiii=123456789;charii[100];itoa(iii,ii,10);ii中的結(jié)果就是字符串"12
5、3456789"intiii=12;charii[100];itoa(iii,ii,2);ii中的結(jié)果是字符串"1100"。3.long轉(zhuǎn)換為字符串char*_ltoa(longvalue,char*string,intradix);wchar_t*_ltow(longvalue,wchar_t*string,intradix);其中,參數(shù)value為被轉(zhuǎn)換的值,參數(shù)string為字符串緩沖區(qū),radix為進(jìn)制。代碼參考:lingl=100;chartemp[10];memset(temp,0,10);ltoa(l,temp,10);4.double轉(zhuǎn)換為字符串char*_fcvt
6、(doublevalue,intcount,int*dec,int*sign);其中參數(shù)value為雙精度數(shù),參數(shù)count為轉(zhuǎn)換的小數(shù)點(diǎn)后面的位數(shù),dec表示小數(shù)點(diǎn)的位置,sign表示符號。代碼參數(shù)如下intdecimal,sign;char*buffer;dobulesource=3.1415926535;buffer=_fcbt(source,7,&decimal,&sign);輸出結(jié)果:sourec:3.1415926535;buffer:'31415927'decimal:1sign:05.日期類型轉(zhuǎn)換為字符串將一日期格式轉(zhuǎn)換為字符串,利用了格式化函數(shù),參考代碼如下:CT
7、imeti=Ctime::GetCurrentTime();CstringstrTemp("");strTemp=ti.Format("%Y%m%d%H%H%S")6.字符串轉(zhuǎn)換為短整型intatoi(constchar*string);其中,參數(shù)constchar*string為要轉(zhuǎn)換的字符串,返回值為轉(zhuǎn)換的結(jié)果。7.字符串轉(zhuǎn)換為長整型longatol(constchar*string)8.字符串轉(zhuǎn)換為雙精度類型doubleatof(constchar*string