python3-實現atoi()函式
阿新 • • 發佈:2018-10-31
0.摘要
本文介紹c語言中的atoi函式功能,並使用python3實現。
1.atoi()函式
atoi (表示 ascii to integer)是把字串轉換成整型數的一個函式。
函式定義形式:int atoi(const char *nptr);
函式會掃描引數 nptr字串,跳過前面的空白字元(例如空格,tab縮排),直到遇上數字或正負符號才開始做轉換;
在遇到非數字或字串結束符('\0')結束轉換,並將結果返回;
如果 nptr不能轉換成 int 或者 nptr為空字串,那麼將返回 0 。
2.python3程式碼
程式碼要解決三個主要問題:
- 字串前有空白字元;
- ‘+’,‘-’ 處理問題;
- 浮點數問題;
首先,python的中的int()函式和float()函式功能可以說是非常強大,已經考慮了空白字元、正負號等問題。
s0 = "123.456"
s1 = "+123.456 "
s2 = " -123.456"
s3 = " -123 "
print(float(s0))
print(float(s1))
print(int(float(s2)))
print(int(s3))
def my_atoi(num_string): if num_string == '': return 0 else: try: f = float(num_string) i = int(f) except: return 0 else: return i if __name__ == '__main__': s0 = "123" s1 = " -123.456 " s2 = " +123. " s3 = ' -123..456 ' s4 = ' ++123.456 ' s5 = ' 0x123.45 ' s6 = ' ' print(my_atoi(s0)) print(my_atoi(s1)) print(my_atoi(s2)) print(my_atoi(s3)) print(my_atoi(s4)) print(my_atoi(s5)) print(my_atoi(s6))