题解 | #将整数字符串转成整数值#

将整数字符串转成整数值

http://www.nowcoder.com/questionTerminal/0c630b57e3d144379508d63d8eb65854

#include <iostream>
#include <limits.h>
using namespace std;

int main() {
    string str;
    cin >> str;
    int flag = 1;
    size_t pos = 0;
    long long sum = 0;
    
    if('0' == str[pos])
    {
        goto end;
    }

    if('-' == str[pos])
    {
        flag = -1;
        ++pos;
    }
    while(pos < str.size())
    {
        if(str[pos] >= '0' && str[pos] <= '9')
        {
            sum = sum*10 + str[pos] - '0';
            ++pos;
        }
        else
        {
            goto end;
        }

    }
    sum *= flag;
    if(sum > INT_MAX || sum < INT_MIN) //引入头文件limits.h,该文件中定义了各种数据类型范围,相对于直接与具体某个数比较更具可移植性
    {
        goto end;
    }
    cout << sum << endl;
    
    return 0;
end:
    cout << 0 << endl;

    return 0;
}

全部评论

相关推荐

牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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