目录
1.头文件
#include<stdlib.h>
2.函数声明
int atoi(const char *string);
3.函数介绍
是将string所指向的字符串转换成为一个整数,该整数的类型为int。
4.参数介绍
- string需要进行整数转换的字符串。
5.使用举例
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *s1 = "-9885 pigs";
int i1 = atoi( s1 );
printf("%s->%d\n",s1, i1);
char *s2 = "pigs";
int i2 = atoi(s2);
printf("%s->%d\n", s2, i2);
system("pause");
return 0;
}
该代码的运行结果便是:
6.模拟实现
//使用枚举类型存储转换后的整形数是否为合法转换
enum Status
{
Valid,//合法
Invalid//非法
};
enum Status status = Invalid;//定义全局变量status,并初始化为非法。即若最后转换数为合法需进行Valid赋值,非法则不进行改变。
int My_atoi(const char *string)
{
int flag = 1;//正负号指标
long long int n = 0;//存储整形值
if (string == NULL)//字符串为空
return 0;
if (string == '\0')//字符串内容为空
return 0;
while (*string == ' ')//字符串中出现空格
string++;
//正负号处理
if (*string == '+')
{
flag = 1;
string++;
}
if (*string == '-')
{
flag = -1;
string++;
}
//计算变为整数
while (*string != '\0')
{
if (isdigit(*string))//检查string是否是数字
{
n = n * 10 + flag * (*string - '0');//计算
if (n < INT_MIN || n > INT_MAX)//计算完后判断n是否超过显示范围
return 0;
}
string++;
}
if (*string == '\0')//字符串成功遍历说明转化合法
{
status = Valid;
return (int)n;
}
else//非法转化
return (int)n;
}