atoi函數就是把一串字符串轉換爲int型整數的函數,通過將字符串中的字符一個一個強制類型轉換,並且存入一個臨時數組中,再將數組中的數字處理一下即可得到我們需要的整數。
實現這個函數的過程中,我們需要注意負數的處理,要進行一次判斷,確定返回值的正負。
其他的字符按照ASCII碼錶進行轉換即可。
下面是代碼:
#include<stdio.h> #include<math.h> int my_atoi(char a[],int sz) { int i = 0, count = 0, ret = 0, tcount = 0, pm = 1, sum[64]; for (i = 0; i < sz; i++) { int tmp = (int)a[i]; if (45 == tmp) { pm = 0; continue; } if (47 < tmp && 59 > tmp) sum[count++] = tmp - 48; } tcount = count--; for (i = 0; i < tcount; i++) ret+= (pow(10, count--))*(sum[i]); if (0 == pm) return ret*-1; else return ret; } int main() { char a[] = "1233423144"; int i = my_atoi(a,sizeof(a)/sizeof(a[0])); printf("%d\n", i); system("pause"); return 0; }