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日

    悬赏问题

    • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
    • ¥30 logisim中设计一个位于十字路口的交通信号灯控制系统
    • ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
    • ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
    • ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
    • ¥15 信息管理系统的查找和排序
    • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
    • ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
    • ¥15 PB中矩阵文本型数据的总计问题。
    • ¥15 MATLAB卫星二体模型仿真