atoi 函式自實現
阿新 • • 發佈:2018-12-01
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 }