atoi

class Solution {
public:
int atoi(const char *str) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(str==NULL)
return 0;
while(*str==' ')
{
str++;
}
if((*str)!='+'&&(*str)!='-')
{
if(((*str)>'9'||(*str)<'0'))
return 0;
}
bool sign = true;
if(*str=='-')
{
sign = false;
str++;
}
else if(*str=='+')
{
sign = true;
str++;
}
long long int result = 0;
while(((*str)<='9'&&(*str)>='0'))
{
if(sign)
{
result = result * 10 +(*str - '0');
if(result>=INT_MAX)
return INT_MAX;
}
else
{
result = result*10 - (*str -'0');
if(result<=INT_MIN)
return INT_MIN;
}
str++;
}
return result;
}
};

原文地址:https://www.cnblogs.com/727713-chuan/p/3302804.html