1508字符串转换成整数

来源:互联网 发布:微信公众号开发java 编辑:程序博客网 时间:2024/06/04 18:00
题目描述:

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

输入:

输入可能包含多个测试样例。
对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数n(1<= n<=10000000)。

输出:

对应每个测试案例,
若输入为一个合法的字符串(即代表一个整数),则输出这个整数。
若输入为一个非法的字符串,则输出“My God”。

样例输入:
5-5+8
样例输出:
5-58
代码如下:先根据第一个字符记录下是正数还是负数,或者直接是非法输入用flag变量记录下来。然后遍历后面的字符,转换成整数,如果遇到非法字符,则用flag变量记录下来。
#include <stdio.h>#include <stdlib.h>int main(){int n,num;int flag,isNegtive;    char input[100];    char *p;    while(scanf("%s",input)!=EOF){     p=input;    isNegtive=flag=num=0;if(*p=='+'){  p++;  isNegtive=0;}else if(*p=='-'){ p++; isNegtive=1;else if(*p!='+'&&*p!='-'&&!(*p>='0'&&*p<='9'))      flag=1;    while(*p!='\0'){ if(*p>='0'&&*p<='9'){ num=num*10+(*p-'0'); p++;    else{  flag=1;  break; }     }      if(flag==1)    printf("My God\n"); else if(flag==0&&isNegtive==0)   printf("%d\n",num);  else if(flag==0&&isNegtive==1)   printf("%d\n",0-num);           }                   return 0;}
原创粉丝点击