8. String to Integer (atoi)

假设str格式" +1111AAAA1111" ,返回值为1111

int myAtoi(char* str) {  
    int flag=1,res=0,dig;  
    while(*str==' ')str++;  //清理开始的空位
    //记录下来符号位
    if(*str=='-'){     //处理符号
        flag=-1;  
        str++;  
    }else if(*str=='+'){  
        str++;  
    }  
    while(*str){  
        //遇见非数字 直接返回 
        if(*str<'0' || *str>'9'){  
            return flag*res;  
        }  
        dig=*str-'0';  
        //每次赋值前做溢出检查
        if(flag==1 && res*10.0+dig>INT_MAX){  
            return INT_MAX;  
        }else if(flag==-1 && -res*10.0-dig

你可能感兴趣的:(8. String to Integer (atoi))