题解 | #把字符串转换成整数(atoi)#

把字符串转换成整数(atoi)

https://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return int整型
 */
#define INT_MAX 2147483647
#define INT_MIN -2147483648

int StrToInt(char* s ) {
    // write code here
    long long res = 0;
    int nagFlag = 0;    //负数标志位
    //去除前导空格
    while(*s == ' ')s++;
    //符号位处理
    if(*s == '+'){
        s++;            //跳过符号位
    }else if(*s == '-'){
        s++;
        nagFlag = 1;
    }
    //获取有效数字
    while(*s >= '0' && *s <='9'){
        res *= 10;
        res += *s - '0';
        s++;
        //判断是否超过int的表示范围
        if(nagFlag == 0 && res > INT_MAX){
            res = INT_MAX;
            break;
        }else if(nagFlag == 1 && -res < INT_MIN){
            res = INT_MIN;
            break;
        }
    }
    if(nagFlag == 1)    //如果是负数
        res *= -1;
    return (int)res;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务