Leetcode(8):String to Integer (atoi)
2015-05-29 19:48
274 查看
字符串转换成整数(atoi)的几条准则:
会忽略开头的一个或多个空白字符,包括' ', '\t', '\r'等等字符。
如果输入的是空串,返回0值。
正负号的情况。
计算的值出现越界时,如果大于INT_MAX那么就返回INT_MAX,如果小于INT_MIN,返回INT_MIN。
会忽略开头的一个或多个空白字符,包括' ', '\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; }