/* 方法2 */ int myAtoi(char *str) { long n = 0; int sign = 0; /* 跳过空格 */ while (*str == ' ') ++str; /* 判断符号 */ if(*str == '-' || *str == '+') { sign = (*str == '-'); ++str; } while (isdigit(*str)) { if (10 * n + *str - '0' > INT_MAX) { return sign ? INT_MIN : INT_MAX; //判断溢出 } n = 10 * n + *str - '0'; ++str; } return sign ? -n : n; }