面试基础常见问题之一,基本流程如下,1,2点是容易忽视的点

1)处理空白字符;

2)处理符号字符;

3)处理数值字符;

4)返回结果。

int atoi(const char* str)
{
    int result = 0;
    int sign = 0;
    assert(str != NULL);
    // proc whitespace characters
    while (*str==' ' || *str=='\t' || *str=='\n')
        ++str;
    // proc sign character
    if (*str=='-')
    {
        sign = 1;
        ++str;
    }
    else if (*str=='+')
    {
        ++str;
    }
    // proc numbers
    while (*str>='0' && *str<='9')
    {
        result = result*10 + *str - '0';
        ++str;
    }
    // return result
    if (sign)
        result *= -1;
    return result;
}
转载请注明来源:Leoncom-《字符串转为整数atoi实现》
Trackback

no comment untill now

Add your comment now