描述
给出一个字符串,把它转换成整数
解决
坑点好多啊,看了题解才A掉的。判断是否有空格,判断字符的符号,还要考虑溢出,还有中间出现非数字字符要中断。
class Solution {
public:
int myAtoi(string str) {
int lenth = str.size();
long long res = 0;
int i = 0;
while (str[i] == ' ' && i < lenth)++i;
int flag = 1;
if (str[i] == '-')
{
flag = -1;
++i;
}
else if (str[i] == '+')
{
flag = 1;
++i;
}
//cout << str[i] << endl;
while (i < lenth){
//cout << str[i] << endl;
if (!isdigit(str[i]))
break;
res = res * 10 + str[i] - '0';
if (res * flag < 0 && res * flag< ((int)(1) << 31))
return (int)(1) << 31;
if ( res * flag> 0 && res * flag > ((unsigned int)(-1) >> 1))
return ((unsigned int)(-1) >> 1);
++i;
}
return res * flag;
}
};