栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言模拟实现库函数 atoi

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言模拟实现库函数 atoi

库函数atoi介绍 :

 作用:将字符串中的数字转换成整形数字

参数:字符串指针

返回类型:int整形

模拟实现代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

// 模拟实现库函数atoi
#include 
#include 
#include 
#include 

enum State
{
	VALID,
	INVILID
};
enum State state = INVILID;
int my_atoi(const char* str)
{
	// str是空指针
	assert(str);
	//str指向的是空字符串
	if (*str == '')
		return 0;
	//跳过空白字符
	while (isspace(*str))
	{
		str++;
	}
	//识别正负数
	int flag = 1;
	if (*str == '+')
	{
		str++;
	}
	else if (*str == '-')
	{
		flag = -1;
		str++;
	}
	long long ret = 0; //判断数字是否越界(int)
	while (*str)
	{
		if (isdigit(*str))
		{
			ret = ret * 10 + flag*(*str - '0');
			if (ret > INT_MAX || ret < INT_MIN)
			{
				return 0; //异常返回
			}
			str++; //遇到停止
		}
		else
		{
			state = VALID;
			return (int)ret;
		}
	}
	state = VALID;
	return (int)ret;

}
int main()
{
	int ret=my_atoi("   -1234aa");
	if (state == VALID)
	{
		printf("合法返回,值为:%dn", ret);
	}
	else
	{
		printf("异常返回,值为:%dn", ret);
	}
	return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346583.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号