首页 > 其他分享 >C语言--模拟实现atoi 字串转整型

C语言--模拟实现atoi 字串转整型

时间:2023-05-27 23:32:06浏览次数:53  
标签:0x000000 arr return -- 空字符 C语言 int atoi

模拟实现atoi,仅考虑了部分转换规则

int my_atoi(const char*p)
{
	int flag = 1;
	long long n = 0;
	//空指针
	if (p == NULL)
		return 0x000000;
	//空字符
	if (*p == '\0')
		return 0x000000;
	//跳过字串前空字符
	while (!(*p=='+'||*p=='-'||(*p>='0'&&*p<='9')))
	{
		p++;
	}
	//正负
	if (*p++ == '-')
		flag = -1;
	//开始转换
	while (('\0' !=*p)&& (*p >= '0' && *p <= '9'))
	{
		n = 10 * n + flag*(*p - '0');
		if (n > INT_MAX)
			return 0x000000;
		p++;
	}
	return n;
}
int main()
{
	const char *arr = "-122";
	int ret = my_atoi(arr);
	printf("%d\n", ret);
	return 0;
}

标签:0x000000,arr,return,--,空字符,C语言,int,atoi
From: https://blog.51cto.com/u_16071993/6363338

相关文章

  • 计算机基础知识的一些学习笔记
    Excel里用AND在开头连接多个条件。立即寻址访问速度最快。直接寻址方式下,操作数在内存中,指令中给出操作数的地址,需要再访问一次内存来得到操作数。立即寻址方式下,操作数在指令中,所以在取得指令时就得到操作数,是速度最快的。寄存器寻址方式下,操作数在CPU的寄存器中,与在......
  • CMake构建指南:如何提高C/C++项目的可维护性
    如果您是一位C/C++开发人员,那么您一定知道在编写和维护大型项目时所面临的挑战。这些项目通常包含大量的源代码、库和依赖项,需要耗费大量的时间和精力才能构建和维护。在这种情况下,使用自动化工具可以大大减轻您的负担,提高项目的可维护性。CMake就是这样一款工具,它可以自动化C/C++......
  • 操作系统中进程的就绪和等待两个状态的区别
    在操作系统中,进程可以处于不同的状态,其中包括就绪状态和等待状态。就绪状态表示进程已经准备好被调度执行,而等待状态表示进程因为某种原因而暂时无法执行,需要等待特定事件的发生或条件的满足。1.就绪状态就绪状态是指进程已经满足了所有的运行条件,并且已经准备好被调度执行,只需......
  • 程序员笔记1-学习markdown语法
    写在前面​ 作为一名程序员,发现要学习的东西实在是太多了,光靠自己的脑子记录实在太难,所以选择用markdown记录一下,先学习一下markdow的基本语法。以后还要学习latex这样的文本编辑器。markdown语法​ 下面开始正式记录markdown语法。1.标题2.无序列表强调用>无序列表......
  • busybox是什么
    BusyBox是一个单一可执行文件的软件集合,旨在提供一个轻量级的Unix工具箱,包含了许多常用的命令和实用程序。它被设计为在嵌入式系统和资源受限的环境中运行,以提供基本的命令行功能。BusyBox的设计目标是通过将多个工具整合到一个可执行文件中,减少系统的空间占用和资源消耗。它......
  • 虚拟机磁盘空间不够了怎么办:VirtualBox/Ubuntu22.04扩展磁盘空间
    当虚拟机在使用过程中发现需要使用的硬盘容量超过创建时分配的硬盘容量时,就会很尴尬,像这样:(b.t.w,要是虚拟硬盘选择的是动态分配存储模式,但虚拟分配空间超过你的物理硬盘空间,当虚拟机使用了超过物理空间的大小时,亲测虚拟机会闪退,切记切记)用如下方式为虚拟硬盘扩容:(1)......
  • docker安装mysql
    转载请注明出处:1.从DockerHub下载MySQL镜像:dockerpullmysql2.运行MySQL容器,并将主机的3306端口映射到容器的3306端口:dockerrun-p3306:3306--namemysql-eMYSQL_ROOT_PASSWORD=your_password-dmysql其中,--namemysql指定容器的名称为mysql,-p3306......
  • 2023/5/27每日总结
       今天,周六,写了三章的数据库作业,还复习了两章的内容,规范化理论与数据库保护;这里把知识点目录写一下:规范化理论:完全函数依赖,部分函数依赖,传递函数依赖,候选码,主码,主属性,非主属性,外码,第一范式,第二范式,第三范式,转化为第二范式,第三范式。数据库保护:事务,事务特点,事务并发性操......
  • 旧机器群晖机器上的硬盘如何放到新的机器上
    比如我的群晖918,原本有3快硬盘。有一台旧的黑裙淘汰了一块4T的硬盘,打算放到918上面。 现在4号位置是有硬盘,但是无可用空间,那怎么样把别的机器上的群晖硬盘拿过来用呢?1、插入硬盘2、切换到存储空间------看到可用池。我们可用看到存储池的情况 点在线重组,可以看到这硬盘......
  • odoo 改变字段显示
    通过scss文件处理.使必填字段下划线加粗.o_required_modifier.o_input{border-bottom:2pxsolid$o-main-text-color!important;} 必填加型号,红色.o_required_modifier::before{content:"*";color:red;}......