输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。
题目比较简单,但是涉及到许多问题,例如非法输入,有正负号,是否为空字符串等等
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
//把字符串转换成整数
#include<iostream>
#include<string>
using namespace std;
enum flag{
valid=0,
invalid
};
int judge=valid;
int paraInt(string
s){
long num=0;
int f=1;
if(s.empty())
judge=invalid; //判断是否为空字符串
else{
string::size_type
i=0;
if(s[0]=="+")
{ //正负号
i=1;
if(s.length()==1)
judge=invalid; //不加这步若字符串为"+"会输出0
}
if(s[0]=="-")
{
i=1;
f=-1;
if(s.length()==1)
judge=invalid;
}
for(i;i<s.length();i++){
//转换
int temp=s[i]-"0";
if(temp>=0&&temp<=9)
num=num*10+temp;
else{
judge=invalid;
break;
}
}
}
num*=f;
return static_cast<int>(num)
; //类型转换
}
int main(void){
string
s;
cin>>s;
int num=paraInt(s);
if(!judge)
cout<<num<<endl;
else cout<<"invalid
input"<<endl;
system("pause");
return 0;
}
|
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
