【模拟实现C语言库函数】atoi的模拟实现

news/2024/7/23 18:40:23 标签: c语言
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <math.h>
int my_atoi(const char* str)
{
	assert(str);
	size_t len = strlen(str);
	size_t j = len - 1;
	// 个位(1234中的4)
	int ret = str[j--] - '0';
	// 十位百位千位...相加(比如1234中的3与10相乘得到30,2与100相乘得到200)
	for (int i = 10; i < pow(10, len); i *= 10)
	{
		ret += (str[j--] - '0') * i;
	}
	return ret;
}
int main()
{
	char str[10] = "1234";
	printf("%d\n", my_atoi(str));
	return 0;
}

核心:

  1. 字符’0’ - 字符’9’的ASCII码值范围是48 - 57;
  2. 字符’0’的ASCII码是48,那么想要得到整数数字0-9,只需要用字符’0’-‘9’中任意一个字符 减去字符’0’即可得到相应0-9的整数数字,如字符’0’-'0’相当于48-48得到0,‘9’-'0’相当于57-48得到9。
  3. 先取到个位数,后面的十位数开始都要与相应位数的10相乘得到想要的数字,比如1234中先取到个位4,再取到3与10相乘得到30,以此类推累计相加。

在这里插入图片描述
在这里插入图片描述


http://www.niftyadmin.cn/n/5057906.html

相关文章

Unity实现设计模式——解释器模式

Unity实现设计模式——解释器模式 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种按照规定语法进行解析的模式&#xff0c;现实项目中用得较少。 给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来…

B2B销售工作怎么做?

做了两年ERP软件销售&#xff0c;一单未成&#xff0c;是不是不适合做销售&#xff1f; 在盲目的下定论之前&#xff0c;首先问自己两个问题&#xff1a; 1、你了解什么是ERP&#xff0c;ERP系统功能模块是怎样的吗&#xff1f; 2、销售本来就是比拼心态的工作&#xff0c;心…

Linux CentOS7 vim多文件编辑

使用vim编辑多个文件&#xff0c;十分常用的操作。本文从打开、显示、切换文件到退出&#xff0c;进行简单讨论。 由于是在一个窗口中&#xff0c;打开、编辑多个文件时&#xff0c;并不能同时编辑与查看&#xff0c;只能一次显示一个文件&#xff0c;编辑一个文件。按正常编辑…

python使用mitmproxy和mitmdump抓包在电脑上抓包(二)

在我的上篇文章中&#xff0c;主要记录如何安装mitmproxy和抓取https流量。参考链接&#xff1a; python使用mitmproxy和mitmdump抓包在电脑上抓包-CSDN博客 本篇主要使用python配合mitmdump来抓包和处理返回包&#xff0c;更加灵活&#xff0c;这也是mitmproxy(mitmdump)的最…

成都瀚网科技:抖音上线地方方言自动翻译功能

为了让很多方言的地域历史、文化、习俗能够以短视频的形式生产、传播和保存&#xff0c;解决方言难以被更多用户阅读和理解的问题&#xff0c;平台正式上线推出当地方言自动翻译功能。创作者可以利用该功能&#xff0c;将多个方言视频“一键”转换为普通话字幕供大众观看。 具体…

uCOSIII实时操作系统(重入函数,调度算法,嵌入式系统中断)

目录 可重入函数和不可重入函数&#xff1a; 基于优先级的调度算法&#xff1a; 嵌入式系统中断&#xff1a; 可重入函数和不可重入函数&#xff1a; 函数可重入是指一函数可以被多个任务调用&#xff0c;而不需要担心在任务切换的过程中&#xff0c;代码的执行会产生错误的…

Excel·VBA分列、字符串拆分

看到一篇博客《VBA&#xff0c;用VBA进行分列&#xff08;拆分列&#xff09;的2种方法》&#xff0c;使用VBA对字符串进行拆分 目录 Excel分列功能将字符串拆分为二维数组&#xff0c;Split函数举例 将字符串拆分为一维数组&#xff0c;正则表达式举例 Excel分列功能 Sub 测…

安防监控/视频汇聚平台EasyCVR云端录像不展示是什么原因?该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…