编程实现函数 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 }

 

posted @ 2013-10-08 19:40  阳光VS心情  阅读(634)  评论(0编辑  收藏  举报