这边思路很差,修修改改.
自己实现的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;
}
};