atoi函数可以将字符串中的数字以整数形式读出来
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <ctype.h>
#define INT_MAX 2147483647
#define INT_MIN -2147483646
//模拟实现atoi函数
long long my_atoi(const char *str)
{
long long ret = 0;//定义一个long long 类型防止数据溢出
int p = 1;
assert (str);
while (isspace(*str))//检测空字符
{
str++;
}
if (*str=='-')//判断是否含有正负号
{
p = -1;
str++;
}
else if (*str=='+')
{
;
}
else
{
return 0;
}
if (((ret*10 + p*(*str-'0'))>INT_MAX)||((ret*10 + p*(*str-'0')))<(INT_MIN))//判断是否溢出
{
printf("数据溢出
");
return 0;
}
while((*str)&&(isdigit(*str)))
{
ret = ret*10 + p*(*str-'0');//将一个字符的数字转换为数字
str++;
}
return ret;
}
int main ()
{
char arr[] = " -12#3";
long long ret = my_atoi(arr);
int bat = atoi(arr) ;
printf ("%d
",bat);
printf ("ret = %ld
",ret);
return 0;
}