您的位置:首页 > 其它

写一个函数,检查字符是否是整数,如果是,返回其整数值

2013-04-25 23:05 459 查看
#include<stdio.h>
#include<cmath>
using namespace std;
int const min = -pow(2, 31);
int const max = pow(2, 31) - 1;
int atoi(char *s)
{
int flag = 1;
long long sum = 0;
if(*s == '-')
{
flag = -1;
++s;
}
if(*s == '+')
{
++s;
}
if(*s<'0' || *s>'9')
{
printf("error-1!\n");
}
while(*s>='0' && *s<='9')
{
if(flag == 1)
{
sum = sum*10 + *s - '0';
if(sum<min || sum>max)
{
sum = max;
break;
}
}
else
{
sum = sum*10 - (*s-'0');
if(sum<min || sum>max)
{             if(sum<min || sum>max)
{
sum = min;
break;
}
}
++s;
}
if(*s != '\0')
{
printf("error-2!\n");
}

return int(sum);
}

int main()
{
char *s = "92p099999999999999";
int i = atoi(s);
printf("i = %d\n", i);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐