atof 和atoi 的模擬實現

2021-08-18 19:27:30 字數 1099 閱讀 8328

下面是將字串解析成浮點數需要考慮的格式:(注意,下面考慮的所有東西可能不存在字串中)

①刪除無意義的空格

②考慮該字串的符號

③解析第一段正文(假如遇到不合法字元,那麼解析到此結束;否則繼續往下解析)

④看是否有小數點

⑤解析第二段正文

⑥看是否存在e/e

⑦假如存在e/e,那麼就開始判斷指數的符號和指數的大小

//② 判斷符號

else if (*str == '+')

while (*str >= '0' && *str <= '9')//③ 判斷第一段正文

if (*str == '.')//④ 判斷是否存在點

str++;

while (*str >= '0' && *str <= '9')//⑤ 判斷第二段正文

if (*str == 'e' || *str == 'e')//⑥ 判斷是否存在e/e

while (count--)

s *= 10.0;

} if (*str++ == '-')//⑦ 在⑥成立的情況下判斷指數的符號以及大小

while (count--)

s /= 10.0;

} }return s*flag;

}下面是將字串解析成整型數需要考慮的格式:(注意,下面考慮的所有東西可能不存在字串中)

①刪除無意義的空格

②考慮該字串的符號

③解析第一段正文(假如遇到不合法字元,那麼解析到此結束;否則繼續往下解析)

int my_atoi(const char*str)

return s*flag;

}

模擬實現atoi

注意到細節問題 一 函式引數 1 形參虛const修飾 2 注意對形參指標判空 二 需要考慮到的細節 1 負數和0 注意區別傳入字元 0 和異常時返回值 2 空字串 3 溢位問題 4 輸入字串非非數字字元 int g flag 0 區別空串 long long strtodig const char...

模擬實現atoi

atoi函式是把字串轉換成整型數的乙個函式,應用在電腦程式和辦公軟體中。int atoi const char nptr 函式會掃瞄引數 nptr字串,跳過前面的空白字元 例如空格,tab縮排 等,可以通過isspace 函式來檢測 直到遇上數字或正負符號才開始做轉換,而在遇到非數字或字串結束符 0...

模擬實現atoi

atoi函式的簡單實現 函式用途 將字串轉為整形 函式原型 int atoi const char str 遇到非數字或字串結束符 0 才結束轉換,並將結果返回。include using namespace std 考慮溢位 如果轉化數字超過int範圍 int占用4位元組,32位元,資料範圍為 2...