题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。
1:判断是否为空字符串
2:判断正负号
3:判断是否有非法输入
最后将出来的数字不断乘以10再加上后面数字不断循环下去
#include "stdafx.h"
#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;//pan duan shi fou wei kong zi fu chuan
else{
string::size_type
i=0;
if(s[0]=='+')
{
i=1;
if(s.length()==1)
judge=invalid;
}
if(s[0]=='-')
{
i=1;
f=-1;
if(s.length()==1)
judge=invalid;
}
for(i;i<s.length();i++){
//zhuan huan
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 _tmain()
{
string s;
cin>>s;
int num=paraInt(s);
if(!judge)
cout<<num<<endl;
else cout<<"invalid input"<<endl;
system("pause");
return 0;
}