Cepheusss 2021-10-12 15:06 采纳率: 33.3%
浏览 9
已结题

实现atoi的时候 传了一个纯数字的字符串,累加函数失效

这边思路很差,修修改改.
自己实现的atoi.出现了输入数字的时候,res = res * 10 + num好像出了问题
s("42"); 最后输出的res 是 2. 但是第一次4进去了 调试的时候发现第二次res直接变成了2而不是42 不太理解,请指导一下 感谢


class Solution {
public:
    int myAtoi(string s) {
        int res = 0;//存储字符的数字
        int sign = 1;//判断符号 ,1 正 -1 负
        int judge = 0;//判断遇见几次符号
        int numSign = 0;//没遇见数字的时候是0.遇见了就是1了
        
        for(int i = 0; i < s.size(); i++){
            //如果是空格就继续往后
            if(s[i] == ' ' && i < s.size() && numSign == 0){
                continue;
            }//如果是 - +
            else if(s[i] == '-' && numSign == 0){
                sign = -1;
                judge++;
                continue;
            }else if(s[i] == '+' && numSign == 0){
                sign = 1;
                judge++;
                continue;
            }else if(judge == 2){
                return 0;
            }else if(isdigit(s[i])){//是数字
                int num = s[i] - '0';
                if(res > INT_MAX / 10 || (res = INT_MAX / 10 && num > 7)){//
                    return (sign == 1) ? INT_MAX : INT_MIN;
                }else{
                    res = res * 10 + num;
                }
                numSign = 1;
            }else if(!isdigit(s[i])){//不是数字
                return (sign == 1)? res : -res;
            }
        }
    return (sign == 1) ? res : -res;
    }
};
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月20日
    • 创建了问题 10月12日

    悬赏问题

    • ¥20 Wpf Datarid单元格闪烁效果的实现
    • ¥15 图像分割、图像边缘提取
    • ¥15 sqlserver执行存储过程报错
    • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
    • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
    • ¥100 matlab2009 32位一直初始化
    • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
    • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
    • ¥15 ADS时域 连续相位观察方法
    • ¥15 Opencv配置出错