atoi函数的介绍和模拟实现
创始人
2024-02-12 00:03:40
0

今天我来介绍atoi函数和模拟实现atoi函数。



目录

    • atoi和与其功能相似的函数的介绍
    • atoi函数的模拟实现



atoi和与其功能相似的函数的介绍

atoi函数是一个将字符串转换为整数值的函数。
请添加图片描述
由msdn查询可以得知,atoi函数的返回类型是int类型,参数类型是const char *,传参要转换的字符串。

在msdn中,我们还可以发现与atoi函数作用相同的函数,如下:
请添加图片描述

这三个函数分别是atof函数、_atoi64函数、atol函数

那么这四个函数有什么区别呢?我们继续在msdn往下查询。

atof函数将字符串转换为双精度浮点值
atoi函数将字符串转为整形值
_atoi64函数将字符串转为long long类型的值
atol将字符串转为long类型的值

返回值介绍

atof函数返回double类型的值,atoi函数返回int类型的值,_atoi64返回long long类型的值,atol函数返回long类型的值,如果输入无法转换为该类型的值,则返回值为0(对于atoi和_atoi64)、0(对于atol)或0.0(对于atof)。溢出时返回值未定义。



atoi函数的模拟实现

应当应对的情况:
1.my_atoi(NULL) 传空指针
2.my_atoi(“”) 传空内容
3.my_atoi(" 123") 传空格+123
4.my_atoi(“-123”) 传正常整数
5.my_atoi(“123abc”) 传整数+字母
6my_atoi(“111111111111111111111”) 传较大的数字,超过了整形的取值范围

#include
#include
#include
enum status
{VALID,INVALID
};
enum status Status = INVALID; 
int my_atoi(const char* ps)
{long long ret = 0;int flag = 1;if(ps == NULL)  //应对空指针{return 0;}if(*ps == '\0')  //应对空内容{return 0;}while(isspace(*ps))   //应对空格{ps++;}if(*ps == '-')     //负数{flag = -1;ps++;}else if(*ps == '+')    //正数{flag = 1;ps++;}while(isdigit(*ps)){ret = ret * 10 + flag * (*ps - '0');if(ret < INT_MIN || ret > INT_MAX)   //应对数字过大,超过整形的取值范围{return 0;}ps++;}if(*ps == '\0') {Status = VALID;return (int)ret;}else{return (int)ret;}
}	
int main()
{int ret = my_atoi("-123");if(Status == VALID)printf("合法的转换:%d\n",ret);else if(Status == INVALID)printf("非法的转换:%d\n",ret);return 0;
}

今天的讲解就到这里,关注点一点,下期更精彩。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...