您的位置:首页 > 其它

实现将一个字符串转化成对应的整形数字

2015-10-28 13:13 330 查看
输入一个字符串比如“+1234”,将其转换成对应的数字1234输出,若是“-1234”,则输出-1234:
#include <stdio.h>
enum Charec{TRUE,FALSE};
int check = FALSE;
int my_atoi(const char *str)
{
int num = 0;
if((str != NULL)&&(*str != '\0'))
{
int minus = 0;
if(*str == '+')
str++;
else if(*str == '-')
{
str++;
minus = 1;
}
while(*str != '\0')
{
if((*str >= '0')&&(*str <= '9'))
{
int flag = minus?-1:1;
num = (num*10)+flag*(*str-'0');
if((!minus&&(num>0x7FFFFFFF))||(minus&&((signed int)num<0x80000000)))
{
num = 0;
break;
}
str++;
}
else
{
num = 0;
break;
}
}
if(*str == '\0')
{
check = TRUE;
}
}
return num;
}
int main()
{
char str[50];
int ret = 0;
scanf("%s",str);
ret = my_atoi(str);
printf("%d\n",ret);
return 0;
}
为将输入字符串“0”输出结果0和输入空字符串输出结果也同样为0这两种情况区分开,特意设置了一个全局枚举常量,这样可以检查枚举常量的值来区分,而且须考虑输入的字符串转换成对应的数字超出int的范围的情况。

本文出自 “敲完代码好睡觉zzz” 博客,请务必保留此出处http://2627lounuo.blog.51cto.com/10696599/1707218
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: