(1)使用常用標(biāo)準(zhǔn)函數(shù)庫stdlib當(dāng)中的字符串轉(zhuǎn)換函數(shù),可以把各種類型的字符串轉(zhuǎn)換為相應(yīng)類型的數(shù)字。
成都創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為玉州企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計,玉州網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
(2)使用輸入輸出標(biāo)準(zhǔn)函數(shù)庫stdio當(dāng)中的sscanf函數(shù)。
用標(biāo)準(zhǔn)庫中的sscanf函數(shù)(其中格式控制字符的使用方法和scanf一致,%d讀十進(jìn)制整數(shù),%x讀16進(jìn)制整數(shù))。例如:char s[] = {"92283976 73b1c080 1e448b0 bd44dae6e"};int a, b, c, d;sscanf(s, "%d%x%x%x", a, b, c, d);前提是要保證字符串格式和格式控制符一致,否則后果不確定。另外,這里bd44dae6e在32位平臺上超過int范圍,如果要正確讀入的話,需要使用long long,對應(yīng)格式控制字符改用Lx或llx。
atof() 將字符串轉(zhuǎn)換為雙精度浮點型值;atoi() 將字符串轉(zhuǎn)換為整型值;atol() 將字符串轉(zhuǎn)換為長整型值;strtod() 將字符串轉(zhuǎn)換為雙精度浮點型值,并報告不能被轉(zhuǎn)換的所有剩余數(shù)字 ;strtol() 將字符串轉(zhuǎn)換為長整值,并報告不能被轉(zhuǎn)換的所有剩余數(shù)字 ;strtoul() 將字符串轉(zhuǎn)換為無符號長整型值,并報告不能被轉(zhuǎn)換的所有剩余數(shù)字。
#includestdio.h
//把一個整數(shù)字符串轉(zhuǎn)換為一個數(shù)。
intascii_to_integer(char*string)
{
intvalue;value=0;
//逐個把一個整數(shù)字符串轉(zhuǎn)換為一個數(shù)。
while(*string='0'*string='9'){
value*=10;
value+=*string-'0';
string++;
}
//錯誤檢查:如果由于遇到一個非數(shù)字字符而終止,把結(jié)果設(shè)置為0
if(*string!='\0')
value=0;
returnvalue;
}
intmain()
{
char*numChar="102";
printf("%d\n",ascii_to_integer(numChar)+3);
return0;
}
擴(kuò)展資料
C語言轉(zhuǎn)義字符
1、使用制表符格式化輸出
橫向制表符\t可以用于格式化文本輸出,假如我們要輸出一組表格樣式的數(shù)據(jù),一種方法是使用輸出多個空格對齊,另一種方法就是使用\t。在下面的程序中,我們?yōu)楸砀竦牡?列與第2列應(yīng)用兩次\t以使列之間有更多的間距。
2、使用反斜框輸出文件路徑
當(dāng)我們需要在程序的運(yùn)行日志或調(diào)試時輸出文件路徑信息,又或者像下面這樣,簡單的將一個路徑輸出到控制臺,這時我們需要使用反斜框轉(zhuǎn)義符來進(jìn)行路徑轉(zhuǎn)義輸出。
#includestdio.h
#includestring.h
int?str2int(char?*ch);//字符型數(shù)字轉(zhuǎn)整型數(shù)字
int?p10(int?m);//計算10的次方,pow函數(shù)計算10次方有誤差,重寫函數(shù)
int?main()
{
char?ch[]="234";
int?n;
n=str2int(ch);
printf("n=%d\n",n);
return?0;
}
int?str2int(char?*ch)
{
int?len=strlen(ch),i,n=0,m=0;
for(i=len-1;i=0;i--)
{
n=n+(ch[i]-'0')*p10(m++);
}
return?n;
}
int?p10(int?m)
{
int?i,sum=1;
if(m==0)
return?1;
for(i=0;im;i++)
sum=sum*10;
return?sum;
}
C語言有atoi、atol、atof等庫函數(shù),可分別把ASCII編碼的字符串轉(zhuǎn)化為int、long、float類型的數(shù)字。\x0d\x0a頭文件:stdlib.h\x0d\x0a函數(shù)原型:int atoi(const char* nptr);\x0d\x0a(另外兩個類似)\x0d\x0a\x0d\x0a舉個例子:\x0d\x0achar *str="123";\x0d\x0aint num=atoi(str);\x0d\x0a執(zhí)行后,num的值被初始化為123