牛骨文教育服务平台(让学习变的简单)
博文笔记

输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345

创建时间:2016-05-04 投稿人: 浏览次数:555

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