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

C语言——模拟实现atoi()

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

C语言——模拟实现atoi()

C语言——模拟实现atio
  • atoi

atoi

int atoi( const char* str )

函数功能:

  • 解析 str 字符串,将其内容解释为整数。
  • 将字符串转换为整数。

函数返回值:

  • 返回 int 类型的值。

说明:

  • 首先丢弃尽可能多的空白字符(如isspace中的空白字符),直到找到第一个非空白字符。然后,从这个字符开始,接受一个可选的初始加号或减号,后面跟着尽可能多的以10为基数的数字,并将它们解释为一个数值。
  • 函数返回 int 类型的值或通过将输入字符解释为数字产生的long值
  • 如果 str 字符串中的第一个非空白字符序列不是一个有效的整数,或者为空或它只包含空白字符而不存在这样的序列,则不执行转换并返回0。
  • 返回值在溢出时未定义,所以 atoi 输入的 str 字符串对应数字有大小限制。

函数实现:

#include 
#include 
#include 
#include 

int my_atoi(const char* str)
{
	assert(str != NULL);
	int flag = 1;
	int ret = 0;
	//跳过空白字符
	while (isspace(*str))
	{
		str++;
	}
	if (*str == '')
	{
		return 0;
	}
	//跳过正负号
	if (*str == '+')
	{
		str++;
	}
	else if (*str == '-')
	{
		flag = -1;
		str++;
	}
	//开始转换数字字符直到非数字字符
	while (isdigit(*str))
	{
		ret = ret * 10 + flag * (*str - '0');
		if ((ret > INT_MAX) || (ret < INT_MIN))
		{
			return 0;
		}
		str++;
	}
	//正常停止
	if (*str == '')
	{
		return ret;
	}
	else
	{
		//遇到非数字字符
		return ret;
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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