
class Solution {
public:
long myAtoi(string str) {
//面试题中经常会考到的
int len = str.size();
int first = false;
int flag = 0;
long result = 0;
if (len == 0)
return 0;
int i;
for (i = 0; i<len;++i)
{
if (str[i] == ' ')
{
continue;
}
else
{
if (str[i] == '+')
{
++i;
break;
}
else if (str[i] == '-')
{
++i;
flag = 1;
break;
}
else if (!isdigit(str[i]))//使用一些库函数
return 0;
else
{
break;
}
}
}
//前面判断了空格和+,-符号
for (int j = i; isdigit(str[j]) && j < len; ++j)
{
result = result * 10 + str[j] - '0';
if(result>INT_MAX||result<INT_MIN)
{
result=flag==1?INT_MIN:INT_MAX;
return result;
//break;
}
}
return flag==1?-result:result;
}
};
相关文章: