From : https://leetcode.com/problems/string-to-integer-atoi/
Implement atoi to
convert a string to an integer.
class Solution {
public:
int myAtoi(string str) {
int flag=3, cur, len = str.size(), isStart=0;
long long res = 0;
for(int i=0; i<len; i++) {
cur = str[i];
if(!isStart && cur==' ') continue;
if(cur!='+' && cur!='-' && (cur<'0' || cur>'9')) break;
if(res) {
if(cur<'0' || cur>'9') break;
else res = res*10 + cur - '0';
if(flag*res>INT_MAX || flag*(res)<INT_MIN)
return flag>0?INT_MAX:INT_MIN;
} else {
if(flag!=3 && (cur=='+' || cur=='-')) break;
else if(flag == 3) {
if(cur=='+'||(cur>='1'&&cur<='9')) flag = 1;
else if(cur == '-') flag = -1;
if(flag!=3) isStart=1;
}
res = (cur>='0' && cur<='9')*(cur-'0');
}
}
cout<<endl;
return ((flag>0)-(flag<0))*(int)res;
}
};
本文介绍了一个基于C++的字符串转整数(ATOI)的实现方法,通过解析输入字符串并处理符号位,逐步将合法的数字字符转换为整数类型。文章中的代码示例展示了如何过滤非法字符,并在遇到非数字字符时终止转换过程。
724

被折叠的 条评论
为什么被折叠?



