模擬實現atoi

2021-08-22 05:57:19 字數 1032 閱讀 6603

//atoi函式的簡單實現

//函式用途:將字串轉為整形

//函式原型 int atoi(const char* str)

//遇到非數字或字串結束符('\0')才結束轉換,並將結果返回。

#include

using namespace std;

//考慮溢位 如果轉化數字超過int範圍

//int占用4位元組,32位元,資料範圍為-2147483648~2147483647[-2^31~2^31-1]

//#define int_max ((int)0x7fffffff)

//#define int_min ((int)0x80000000)

//c語言在limits.h中包含了極大和極小的整數值,也可以直接呼叫 int_max int_min。

int my_atoi(const char*str)

//跳過空格 isspace()這個函式在type.h標頭檔案中;也可以s[i]==' '實現

while (*str == ' ')

//for (i; isspace(str[i]); i++)

//{}

//判斷並且跳過符號位

int s = (*str == '-') ? -1 : 1;

//int s=1;

//if(*str=='-'||*str=='+')

//if (*str == '+' || *str == '-')

//剩下只有字元和數字的情況 將數字字元轉換成整形數字,isdigit()這個函式在type.h標頭檔案中;

//也可以s[i]>='0' && s[i]<='9''實現; 0x30是 '0'

while (*str>='0'&&*str

<='9') //while(isdigit(str[i]))

//else

//str++;

}return tmp*s;

}void test()

int main()

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