前言
一、aoti
作用:将字符串转换成整数
头文件:<stdlib.h>
定义函数: int atoi(const char *nptr)
其他相关函数:atof(字符串转浮点数),atol(将字符串转换成长整型数)等。
二、模拟aoti
函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回。我们模拟时按照以上要求模拟即可。
直接上代码
enum
{
INVALID,
VALID
};
enum State status = INVALID;
int My_aoti(const char* arr)
{
char* str = arr;
int flag = 1;
long long n = 0;//处理当数据大小超过INT_MAX
assert(str);//防止str为空指针
while (isspace(*str))//跳过空格
{
str++;
}
if (*str == '-')
{
flag = -1;
(*str)++;
}
else if(*str =='+')
{
(*str)++;
}
while (isdigit(*str))
{
n = n * 10 + flag * (*str - '0');
if (n > INT_MAX || n < INT_MIN)//当数据大小超过INT_MAX,进行停止
{
return 0;
}
str++;
}
return (int)n;
}
总结
以上就是atoi的简单模拟希望对大家有帮助!