JZ49 把字符串转换成整数*
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
思路
遍历字符串中的每一个字符,如果字符-'0'字符在0~9之间,则就是数值,那就*10+res保存起来;否则返回0
这里是看见题目中的+才想到需要进行正负数的判断的,判断方式很简单,看第一个字符
代码
class Solution {
public:
    int StrToInt(string str) {
        int i=0;
        int res=0;
        int temp;
        bool flag=0;    //正负号的标志,默认为正,如果字符串第一个是负号就变为1 
        if(str[0]=='+')
            i=1;
        else if(str[0]=='-')
        {
            i=1;
            flag=1;
        }
        for(;i<str.size();i++)
        {
            temp=str[i]-'0';
            if(temp<0||temp>9)
                return 0;
            else
                res=res*10+temp;
        }
        if(flag)
            return (0-res);//是负数
        else
            return res;
    }
}; 查看9道真题和解析
查看9道真题和解析