题解 | #将整数字符串转成整数值#
将整数字符串转成整数值
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;
}
}