模拟实现atoi函数

来源:互联网 发布:mk淘宝代购的是真是假 编辑:程序博客网 时间:2024/05/22 12:48
using namespace std; typedef enum  Myenum{    VALID//feifa    ,INVID//hefa}Status ; Status stat = INVID;int my_atoi(const char* string) {     int Ret_sign = 0;     int Integet_sign = 1;     long long sum = 0;     assert(string != NULL);     /*     *  跳过空格字符     */     while (isspace(*string) != 0)     {         string++;     }     /*     *  判断正负号;     *  如果是正号,指针指向下一个字符     *  如果是负号,Integet_sign置为-1,然后指向下一个字符     */     if (*string == '-')         Integet_sign = -1;     if (*string == '-' || *string == '+')         string++;     /*     *  把数字字符串转化成整数     */     //while (*string != '\0')     //{        // if (isdigit(*string))        // {        //   sum = Integet_sign*sum * 10 + *string - '0';        //   if (sum > INT_MAX || sum < INT_MIN)        //   {        //       sum = 0;        //       break;        //   }        // }        // else        // {        //   sum = 0;        //   break;        // }        // string++;     //}     //if (*string == '\0')     //{        // stat = VALID;     //}     //return sum;     while (isdigit(*string) && *string != '\0')     {         Ret_sign = Ret_sign * 10 + *string - '0';         if (Ret_sign > INT_MAX)             return INT_MAX;         if (Ret_sign < INT_MIN)             return INT_MAX;         string++;     }     Ret_sign = Integet_sign*Ret_sign;     return Ret_sign;
原创粉丝点击