W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
下一個(gè)任務(wù)是把文件中的數(shù)字從字符串形式轉(zhuǎn)換為整型數(shù)。在書寫較大的數(shù)字時(shí),人們往往會(huì)用逗號(hào)將數(shù)字分組,如1,750。而計(jì)算機(jī)處理數(shù)字時(shí),絕大部分情況是不包括逗號(hào)的,而且內(nèi)置的讀取數(shù)字的函數(shù)通常不能處理逗號(hào)。這就增加了轉(zhuǎn)換的困難,不過(guò)也給了我們一個(gè)機(jī)會(huì)來(lái)編寫去掉逗號(hào)的函數(shù),所以這也沒(méi)什么。去掉逗號(hào)之后,我們就可以使用庫(kù)函數(shù)atoi將字符串轉(zhuǎn)換為整型數(shù)了。atoi在頭文件stdlib.h中定義。
要去掉逗號(hào),一個(gè)選擇就是遍歷字符串,檢查每個(gè)字符是否是數(shù)字。如果是的話,我們就將其加入結(jié)果字符串中。在循環(huán)結(jié)束時(shí),原始字符串中的所有數(shù)字就都按順序包含到結(jié)果字符串中了。
int convertToInt (const apstring& s)
{
apstring digitString = "";
for (int i=0; i<s.length(); i++) {
if (isdigit (s[i])) {
digitString += s[i];
}
}
return atoi (digitString.c_str());
}
變量digitString是累加器的一個(gè)例子。累加器和我們?cè)诘?.9節(jié)見(jiàn)過(guò)的計(jì)數(shù)器比較相似,不過(guò)計(jì)數(shù)器是不斷地增加值,而累加器是每次以字符串連接的方式增加一個(gè)字符。
表達(dá)式
digitString += s[i];
等價(jià)于表達(dá)式
digitString = digitString + s[i];
兩條語(yǔ)句都是在現(xiàn)有字符串末尾添加一個(gè)字符。
因?yàn)閍toi以一個(gè)C字符串作為參數(shù),所以我們必須先把digitString轉(zhuǎn)化為C字符串,然后才能將其作為atoi的參數(shù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: