首页 > 代码库 > 典型c库函数的实现

典型c库函数的实现

StrToInt:字符串转int输出

 1 enum Status  2 { 3 kValid = 0, 4 kInvalid = 1, 5 }; 6  7 int StrToInt(const char* str) 8 { 9     g_nStatus = kInvalid;10     long long num = 0;11 12     if(str!=NULL && *str != \0)13     {14         bool minus = false;15         while(*str =="")16             str++;17         if(*str ==+)18         {19             str++;20         }21         else if(*str==-)22         {23             str++;24             minus = true;25         }26 27         if(*str !=\0)28         {29             num = StrToIntCore(str, minus);30        }31     }32     return (int)num;33 }34 35 int StrToIntCore(const char *digit, bool minus)36 {37     long long num = 0;38     while(*digit !=0)39     {40         if(*digit >=0 && *digit<=9)41         {42             int flag = minus ? -1:1;43             num =num*10 + flag*(*digit -0);44 45             //判断整数是否发生上溢/下溢46             if((!minus && num > 0x7FFFFFFF) //最大正数:2^32-147                 || (minus && num <(signed int)0x80000000))//最小负数:2^3248             {49                 num = 0;50                 break;51             }52             digit++;53         }54         else55         {56             num = 0;57             break;58         }59     }60     if(*digit==\0)61     {62         g_nStatus = kValid;63     }64 65     return num;66 }