1. 程式人生 > >atoi 函式自實現

atoi 函式自實現

 1 #include <stdio.h>
 2 /*
 3 編碼實現字串轉整型的函式(實現函式 atoi 的功能)。如將字串“123”轉化為 123,
 4 “-0123”轉化為-123
 5 */
 6 int myatoi(const char *p)
 7 {
 8     int val = 0;
 9     int sign;
10     while(*p == ' '||*p == '\t')p++;
11     if(*p == '-'||*p == '+')
12     {
13         sign = (*p == '-'?-1:1);//必須用括號,= 和 ==  優先順序不一樣
14 p++; 15 } 16 17 while(*p-'0'>=0&&*p-'9'<=0) 18 { 19 if(*p == '0')//考慮符號 後第一個字元為'0'的情況-0123 沒有這樣的數字吧,直接歸0 20 return 0; 21 else 22 val = val*10+(*p-'0'); 23 p++; 24 } 25 return sign*val; 26 27 } 28 int main(void
) 29 { 30 char *p = " -123a44sdfdf"; 31 int val = myatoi(p); 32 printf("val = %d\n",val); 33 34 return 0; 35 }