把字符串转换成整数

来源:互联网 发布:hadoop 书籍 知乎 编辑:程序博客网 时间:2024/06/05 20:37
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。如果是非法的整数字符,比如1aa3,则返回0。
class Solution {public: int StrToInt(string str) {        if(str.length()==0)            return 0;        bool flag=true;        int k=0;        if(str[0]=='+'){            k++;        }else if(str[0]=='-'){            k++;            flag=false;        }        int num=0;        for(int i=k;i<str.length();i++){            if(str[i]<'0'||str[i]>'9')                return 0;            if(num>INT_MAX/10)                return 0;            if(num==INT_MAX/10&&str[i]-'0'>INT_MAX%10&&flag)                return 0;            if(num==INT_MAX/10&&str[i]-'0'==INT_MAX%10+1&&!flag)                return INT_MIN;            if((num==INT_MAX/10&&str[i]-'0'>INT_MAX%10&&!flag))                return 0;            num*=10;            num+=str[i]-'0';        }        return num*(flag?1:-1); }};

0 0
原创粉丝点击