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

将整数字符串转成整数值

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

//本题纯模拟
//一开始错了不要紧,看数据给的是什么再把考虑不周的补上就行,还是入门题
#include<bits/stdc++.h>
using namespace std;
int main(){
    string str;
    cin>>str;
    if(str[0]=='0'){//首字符为0不符合日常书写习惯
        cout<<0<<endl;
        return 0;
    }
    long long res=0;
    bool flag=true;//确定正负号
    for(int i=0;i<str.size();i++){
        if(str[i]>='0'&&str[i]<='9'){
            res=res*10+str[i]-'0';
        }
        else if(str[i]=='-'&&i==0){
            flag=false;
        }
        else{//说明str[i]不是数字字符
            cout<<0<<endl;
            return 0;
        }
    }
    if(flag){
        if(res<=2147483647){
               cout<<res<<endl;
                return 0;
        }
       else{
           cout<<0<<endl;
           return 0;
       }
    }
    else{
        if(res==0||res>2147483648){
            cout<<0<<endl;
            return 0;
        }
        cout<<"-"<<res<<endl;
        return 0;
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务