-
题目描述:
-
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
-
输入:
-
输入可能包含多个测试样例。
对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数n(1<= n<=10000000)。
-
输出:
-
对应每个测试案例,
若输入为一个合法的字符串(即代表一个整数),则输出这个整数。
若输入为一个非法的字符串,则输出“My God”。
-
样例输入:
-
5 -5 +8
-
样例输出:
-
5 -5 8
#include<iostream> #include<string> #include<cstring> #include<cstdio> #include<cstdlib> #define MAX 100 using namespace std ; int main() { char a[MAX] ; while(cin>>a){ bool tag = false ; char b[MAX] ; int i , j = 0 ; if(strlen(a)==1){ if(a[0]<'0' || a[0]>'9') cout<<"My God"<<endl; else cout<<a[0]<<endl; continue ; } for( i = 0 ; i < strlen(a) ; i ++) { if(i==0 && a[i] == '+') continue ; if(i==0 && a[i]=='-'){ b[j++] = a[i] ; continue ; } if(a[i]>='0' && a[i]<='9') b[j++] = a[i] ; else{ tag = true ; break; } } if(tag) cout<<"My God"<<endl; else { for( i = 0 ; i < j ; i++) if(b[i]=='-') { continue ; } else{ if(b[i]=='+') continue ; else{ if(b[i]=='0') continue ; else break; } } if(i>= j) cout<<"0"<<endl; else{ if(b[0]=='-') cout<<"-"; for( int k = i ; k <j ; k ++) cout<<b[k]; cout<<endl; } } } return 0; }