atoi

将字符数字转为整形数字。

 

 1 int iCharToInt(const char * str)
 2 {
 3     int i = 0;
 4     long long iNum = 0;
 5     bool bIsPositiveNumber = true;
 6     int iLen = strlen(str);
 7     if(iLen == 0)
 8     {
 9         return 0;
10     }
11     while(str[i] == ' ')
12     {
13         i++;
14     }
15     if(str[i] == '+')
16     {
17         i++;
18         bIsPositiveNumber = true;
19     }
20     else if(str[i] == '-')
21     {
22         i++;
23         bIsPositiveNumber = false;
24     }
25     if(i<iLen)
26     {
27         if( !('0'<=str[i] && str[i]<='9') )
28         {
29             return 0;
30         }
31         iNum = str[i]-'0';
32         i++;
33     }
34     
35     for (; i<iLen; i++)
36     {
37         if( !('0'<=str[i] && str[i]<='9') )
38         {
39             break;
40         }
41         iNum = iNum*10 + (str[i]-'0');
42         if(iNum > 2147483647)
43         {
44             break;
45         }
46     }
47     if(!bIsPositiveNumber)
48     {
49         iNum = iNum * -1;
50     }
51     if(iNum>2147483647)
52     {
53         return 2147483647;
54     }
55     else if(iNum<-2147483648)
56     {
57         return -2147483648;
58     }
59     return iNum;
60 }

 

posted @ 2014-12-02 18:41  MDGSF  阅读(165)  评论(0)    收藏  举报