编程实现函数 int my_atoi(const char *str)
1 /* 2 *atoi() 3 * 4 * To convert a string to integer 5 * 6 */ 7 #include<stdio.h> 8 #include<stdlib.h> 9 #define IS_DIGIT(_arg_) ({char _ch_ = _arg_ ;(_ch_ >= '0'&&_ch_ <= '9');}) 10 int my_atoi(const char *str); 11 12 int main(int argc, const char *argv[]) 13 { 14 int value; 15 value = my_atoi("-123456"); 16 printf("value:%d\n",value); 17 18 return 0; 19 } 20 21 int my_atoi(const char *str) 22 { 23 int integer = 0; 24 const char *p = str; 25 int flag = 1; 26 switch(*p) 27 { 28 case '+': 29 p++; 30 break; 31 case '-': 32 flag = -1; 33 p++; 34 break; 35 default: 36 break; 37 } 38 39 for(;'\0' != *p && IS_DIGIT(*p);p++) 40 { 41 integer *= 10; 42 integer += *p - '0'; 43 } 44 45 return flag > 0 ? integer : -integer; 46 47 }