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;

    }
};
全部评论

相关推荐

请看图片
投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务