程式語言 - LeetCode - C - 8. String to Integer (atoi)



題目:


解答:

int myAtoi(char *s)
{
    int i = 0;
    int sign = 1;
    int state = 0;
    int len = strlen(s);
    long r = 0;

    for (i = 0; i < len; i++) {
        if (s[i] != ' ') {
            break;
        }
    }

    if ((i < len) && ((s[i] == '-') || (s[i] == '+'))) {
        sign = (s[i++] == '-') ? -1 : 1;
    }

    for (; i < len; i++) {
        if ((s[i] >= '0') && (s[i] <= '9')) {
            r  = (r * 10) + (s[i] - '0');
            if (r > INT_MAX) {
                return (sign == 1) ? INT_MAX : INT_MIN;
            }
        }
        else{
            break;
        }
    }
    return r * sign;
}