題目鏈接--------------------->8. 字符串轉換整數 (atoi)
這道題目沒什麼好說的,就是要對各個情況要考慮全面,要注意細節
int myAtoi(string str) {
int len = str.length(),flag = 1;
long long int num = 0;
int ans = 2147483647,i = 0;
if(len == 0)
return 0;
for(i = 0;i < len && str[i] == ' ';i++); //找到第一個非空字符
if(str[i] == '-')
{
flag = -1;
i++;
}
else if(str[i] == '+')
i++;
else if(!(str[i] >= '0' && str[i] <= '9'))
return 0;
for(;i < len;i++)
{
if(str[i] >= '0' && str[i] <= '9')
{
num *= 10;
num += str[i] - '0';
//範圍判斷
if(flag != -1)
{
if(num > ans)
return ans;
}
else{
if(-1*num < -1*ans - 1)
return -1*ans - 1;
}
}
else{
return num *flag;
}
}
return num*flag;
}