输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"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;
}
|
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。