atoi 函数实现

来源:互联网 发布:淘宝运营每天工作内容 编辑:程序博客网 时间:2024/06/08 13:44
#define INT_MAX ((int)0x7FFFFFFF) #define INT_MIN ((int)0x80000000)//#define INT_MAX (~(unsigned int)0/2)bool valid = true;int myatoi(const * str){int num = 0;valid = false;if(NULL != str ){const *digit = str;bool minus = false;while(*digit==' ' ||  *digit == '\t')        digit++;        if(*digit == '+'){        digit++;        }        else(*digit == '-'){        digit++;        minus = true;        }        while(*digit != '\0'){        if(*digit >= '0' && *digit <= '9'){        num=10*num + (*digit - '0');        digit++;        }        else{        num = 0;        break;        }        }        if(*digit == '\0'){        if((minus && num>INT_MAX + 1LL) || (!minus && num>INT_MAX))        return 0;        else{        valid = true;        if(minus)        num *= -1;        return num;        }        }    }}


1.判空操作

2.空格、符号处理

3.最大整数和最小边界处理

4.全局变量标记数据是否有效

0 0