实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。
样例
"10" =>10
"-1" => -1
"123123123123123" => 2147483647
"1.0" => 0
class Solution {
public:
/**
* @param str: A string
* @return An integer
*/
int atoi(string str) {
int MAX_VALUE=2147483647;
int MIN_VALUE=-2147483648;
int i=0;
if(str.length()==0)
return 0;
while(str[i]!='\0'&&str[i]==' ')
{
i++;
}
bool negative=false;
if(str[i]=='+')
{
i++;
}
else if(str[i]=='-')
{
negative=true;
i++;
}
double sum=0;
for(;str[i]!='\0';i++)
{
if(str[i]>='0'&&str[i]<='9')
sum=sum*10+(str[i]-'0');
else
break;
}
if(negative)
sum=-sum;
if(sum>MAX_VALUE)
return MAX_VALUE;
if(sum<MIN_VALUE)
return MIN_VALUE;
return (int)sum;
}
};