字符串转换为整数

没有啥好解释的啦,关键是要考虑所有的情况,比如正负号,溢出,输入等。

 1 enum Status {kValid = 0 , kInvalid};
 2 bool g_nStatus = kValid ;
 3 
 4 int StrToInt(const char* str)
 5 {
 6     g_nStatus = kInvalid;
 7     long long num = 0 ;
 8     if (str != NULL && str != '')
 9     {
10         bool minus = false ;
11         if (*str == '+')
12         {
13             str++;
14         }
15         else if (*str == '-')
16         {
17             str++;
18             minus = true;
19         }
20         if (*str != '')
21         {
22             num = 
23         }
24     }
25     return (int)num ;
26 }
27 
28 long long StrToInt(const char* digit , bool minus)
29 {
30     long long num = 0 ;
31     while (*digit != '')
32     {
33         if (*digit >= '0' && *digit <= '9')
34         {
35             int flag = minus ? -1 : 1 ;
36             num = num * 10 + flag * (*digit - '0') ;
37             if ( (!minus && num > 0x7FFFFFFF)  || (minus && num < 0x80000000)  )
38             {
39                 num = 0 ;
40                 break;
41             }
42             digit++ ;
43         }
44         else
45         {
46             num = 0 ;
47             break;
48         }
49     }
50     if (*digit == '')
51     {
52         g_nStatus = kValid ;
53     }
54     return num ;
55 }
原文地址:https://www.cnblogs.com/csxcode/p/3757124.html