C语言中有很多的库函数,其实平时没事的时候多去实现一下里面的库函数还是很有用的,下面就来讲一讲C语言中的atoi函数,这个函数的主要功能是将一个字符串转化为一个数字,可能第一眼看上去,你会觉得这是一个很简单的函数,甚至是一个不需要多少行代码就可以实现的函数。其实这是一个看着很简单,但是实践起来还有些需要注意的地方。
如果直接给你一道题目,说让你实现一个函数,功能是将你输入的字符串转化为数字,相信这道题大家都会说简单,但是如果你真的能把所有的情况都考虑进去,那么可以说你是一个注重细节的人,因为这里需要考虑很多情况。总的来说,有以下5种情况:
1--指针为NULL
2--空字符处理
3--正号与负号的处理
4--溢出处理
5--如果遇到异常字符怎么处理
下面附上我测试的代码:
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<ctype.h>
#include<limits.h>
enum Ret //状态,用来输入是否合理
{
VALID,
INVALID,
};
enum Ret state = INVALID;
int M