class Solution
{
public:
int myAtoi(string s)
{
long res = 0;
int flag = 1;//正负号
int index = 0;
while(index < s.size() && s[index] == ' ')//去除空格
{
++index;
}
if(s[index] == '+')//记录正负号
{
flag = 1;
++index;
}
else if(s[index] == '-')
{
flag = -1;
++index;
}
else if(s[index] < '0'|| s[index] > '9')//出现非法字符
{
return 0;
}
while(index < s.size() && s[index] >= '0' && s[index] <= '9')
{
if((res - 1) > INT_MAX)//数字已超出范围,需要截断
{
break;
}
res = res * 10 + s[index] - '0';
++index;
}
res *= flag;
if(res > INT_MAX)
{
return INT_MAX;
}
if(res < INT_MIN)
{
return INT_MIN;
}
return res;
}
};
8. 字符串转换整数 (atoi)
最新推荐文章于 2025-06-09 23:05:05 发布