class Solution {
public:
int myAtoi(string str) {
int flag = 1;
long result =0;
int num = str.length();
int start = str.find_first_not_of(' ');
if(start == string::npos) ///找不到非空字符
return 0;
if(str[start] == '-')
{
flag = -1;
start++;
}
else
{
if(str[start] == '+')
{
flag =1;
start++;
}
else
if(str[start]>'9'&&str[start]<'0')
return 0;
}
for(; start < num; start++)
{
if(str[start]<='9'&&str[start]>='0')
{
result=result*10+(str[start]-'0');
if(result*flag>INT_MAX)
return INT_MAX;
if(result*flag<INT_MIN)
return INT_MIN;
}
else
{
break;
}
}
return flag*result;
}
};
知识点:
find_first_not_of
如何利用ASSCCI码计算数字, 利用char 减去'0'即可