将字符串数字转成数字。注意正负号,如果第一位是字母返回空字符,“-123a”只返回-123。
int myAtoi(string str) {
long result = 0;
int indicator = 1;
int i;
i = str.find_first_not_of(' ');
if(str[i] == '-' || str[i] == '+')
indicator = (str[i++] == '-')? -1 : 1;
while(i<str.size()&&isdigit(str[i]))
{
result = result*10 + (str[i++]-'0');
if(result*indicator >= INT_MAX) return INT_MAX;
if(result*indicator <= INT_MIN) return INT_MIN;
}
return result*indicator;
}
做一个关于string的总结
find_first_of查找与字符串str中某个字符相同的位置,并返回他的第一个出现的位置,如果没有则返回最后一个字符的后面一个位置。isspace检查是否为空/isdigit是否为数字字符。