#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;
}
写一个函数,检查字符是否是整数,如果是,返回其整数值
最新推荐文章于 2020-09-27 19:08:53 发布