您的位置:首页 > 其它

题目1508:把字符串转换成整数

2013-09-24 19:27 316 查看
题目描述:

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。

输入:

输入可能包含多个测试样例。

对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: