atoi庫函式模擬實現

2021-10-12 13:04:13 字數 1388 閱讀 9490

第一次嘗試

#define _crt_secure_no_warnings

#include

#include

intmyatoi

(const

char

* str)

;char

* ts = ts;

//設定符號位,用來判定這樣的情況:不見可字元,數字,不可見字元,數字

//如果前面為不可見字元,在遇到數字後,flag1就++,這樣就不會進入後面的不可見字元

int flag1 =0;

//外部迴圈判定前面的 數字、正負號、不可見字元

while((

*str >

47&&

*str <58)

||((*str==

43||

*str==45)

&&flag1==0)

||(*str>=0&&

*str<=

32&&flag1==0)

)else

}*ts =

'\0'

;int i =0;

//設定符號位,如果是『-』,那麼flag就加一

int flag =0;

if(ts[i]

==45

)int ret =0;

while

(ts[i]

!='\0'

) ret /=10

;//將數字篩選出來轉換成對應的整形之後,如果flag==1,那麼就讓數字減去自己的二倍,即可獲得對應數字的負值

if(flag ==1)

//如果flag==0,那麼正常輸出轉化好的數字

return ret;

}int

main()

;int i =0;

char c =0;

scanf

("%c"

,&c)

;while

(c !=

'\n'

)printf

("%s\n"

, str)

;int ret =

myatoi

(str)

;printf

("%d\n"

, ret)

;/*int a = atoi(" 123 123jklb");

printf("%d\n", a);*/

return0;

}

用法:將字串裡的數字字元轉化為整形數。返回整形值。

注意:轉化時跳過前面的不可見字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時\0才結束轉換,並將結果返回。具體轉化思路見上面**的注釋。

發表於 2020-11-25 12:16

模擬實現atoi函式

atoi函式就是把一串字串轉換為int型整數的函式,通過將字串中的字元乙個乙個強制型別轉換,並且存入乙個臨時陣列中,再將陣列中的數字處理一下即可得到我們需要的整數。實現這個函式的過程中,我們需要注意負數的處理,要進行一次判斷,確定返回值的正負。其他的字元按照ascii碼表進行轉換即可。下面是 inc...

c語言 模擬實現c語言庫函式atoi

題目 模擬實現c語言庫函式atoi 思路 模擬實現庫函式atoi,要考慮幾種特殊情況,1.空格問題 2.符號問題 3.異常 字母 4.數字太大,越界問題。使用c語言編寫函式,將乙個數字字串轉換為對應的數字 功能類似於庫函式的atoi,考慮異常輸入 include include include in...

模擬實現atoi

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