8. 字符串转换整数 (atoi)

8. 字符串转换整数 (atoi)

int myAtoi(char* str) {
    int i = 0;
    int minus = 0;
    long long num = 0;
    
    if (!str)
        return 0;
    
    while (str[i] == ' ')
        i++;
    if (str[i] == '+')
        i++;
    else if (str[i] == '-') {
        minus = 1;
        i++;
    }
    
    while (str[i] >= '0' && str[i] <= '9') {
        num = 10 * num + (str[i] - '0');
        if (!minus && num > INT_MAX) {
            return INT_MAX;
        } else if (minus && -num < INT_MIN) {
            return INT_MIN;
        }
        i++;
    }
    return minus == 0 ? num : -num;
}