您的位置:首页 > 其它

Leetcode(8):String to Integer (atoi)

2015-05-29 19:48 274 查看
 字符串转换成整数(atoi)的几条准则:

会忽略开头的一个或多个空白字符,包括' ', '\t', '\r'等等字符。
如果输入的是空串,返回0值。
正负号的情况。
计算的值出现越界时,如果大于INT_MAX那么就返回INT_MAX,如果小于INT_MIN,返回INT_MIN。
int myAtoi(char* str)
{
int i = 0, result = 0, flag = 1;

if (str == NULL || strlen(str) == 0)
return 0;

while (isspace(str[i]))
i++;

if (str[i] == '+')
i++;
if (str[i] == '-') {
flag = -1;
i++;
}

while (isdigit(str[i]) && i < strlen(str)) {
if (flag == 1 && result > (INT_MAX-(str[i]-'0') )/10 )
return INT_MAX;
else if (flag == -1 && result > -((INT_MIN+(str[i]-'0'))/10) )
return INT_MIN;
result = result * 10 + str[i] - '0';
i++;
}
result *= flag;
return  result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: