自己实现atoi函数
问题描述:
自己实现一个MyAtoi函数,要和C语言库函数的atoi函数完成同样的功能。
问题分析:
首先我们要了解一下atoi函数它到底做了什么事情
(1) 函数原型
int atoi (const char * str);
(2) 函数说明
atoi函数会扫描参数 str 字符串,跳过前面的空白字符(下面会解释空白字符),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。
PS:空白字符包括:空格(’ ‘)、定位字符(’ \t ‘)、CR(’ \r ‘)、换行(’ \n ‘)、垂直定位字符(’ \v ‘)或翻页(’ \f ‘)
(3) 返回值
返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。
根据以上的描述,我们可以来实现自己的代码了
参考代码:
#include <stdio.h>
#include <stdlib.h>int MyIsSpace(char ch)
{if (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\f' || ch == '\v' || ch == '\r')return 1;return 0;
}int MyIsDigit(char ch)
{if (ch >= '0' && ch <= '9')return 1;return 0;
}int MyAtoi(const char* pStr)
{char sign;int nValue = 0;while (MyIsSpace(*pStr))//去掉空字符pStr++;sign = *pStr;if (sign == '-' || sign == '+')pStr++;while (MyIsDigit(*pStr)){nValue = 10 * nValue + (*pStr - '0');pStr++;}return sign == '-' ? -nValue : nValue;
}int main()
{char str[100];gets_s(str, 100);printf("MyAtoi = %d\n", MyAtoi(str));printf("atoi = %d\n", atoi(str));return 0;
}
运行结果:
自己实现atoi函数相关推荐
- 编写实现atoi函数
题目:给定一个字符串,要求转成整数,不允许使用atoi或者其它类似库函数. 方案:实现这个函数并不难,但是要考虑以下几个问题 1.考虑字符串为空指针的时候 2.考虑字符串为空串 ...
- C语言atoi()函数用法
C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...
- atoi()函数定义
原型:int atoi (const char *nptr) 用法:#include <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前 ...
- C语言atoi()函数(字符串转整数int类型)(atol()转换为long)
需包含头文件:C 标准库 - <stdlib.h> 文章目录 描述 声明 参数 返回值 实例 在windows VS上测试 20211206 用atoi转换long,发现溢出了 描述 C ...
- linux中atoi函数的实现 值得借鉴,【转】atoi()函数的实现
atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回( ...
- C语言中atoi()函数的用法
C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...
- Linux下main函数带参数问题和atoi函数详解
1.main函数带参数 基本格式:main(int argc,char * argv[]) argc参数保存命令行参数的个数,是整形变量 具体用法可有如下代码看下: a1.c: #include &l ...
- atoi函数_吊打面试官 | 腾讯经典考点写代码实现atoi函数
点击蓝字关注我哦 以下是本期干货视频视频后还附有文字版本哦 ▼<腾讯经典考点-写代码实现atoi函数>▼ ps:请在WiFi环境下打开,如果有钱任性请随意 在腾讯面试时,经常会被问到如何用 ...
- C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset
atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...
- C atoi函数
作用 atoi()函数将数字格式的字符串转换为整数类型.例如,将字符串1253124127转换成数字1253124127. 注意 首要注意 atoi函数可以转化如下这种字符串 1fdafhdjfhka ...
最新文章
- C++手册_迅为干货 | C程序调用shell
- 一些VR延迟优化方法
- 危机下,你还敢提加薪吗?
- 调用cmd不显示黑框的方法
- 如何在IntelliJ IDEA中快速配置Tomcat
- 微软解释 Edge 浏览器比 Chrome 更加安全的原因
- 【Maven学习】Maven打包生成包含所有依赖的jar包
- 系统梳理 Tensorflow、PyTorch 等深度学习框架,洞悉 AI 系统底层原理和算法
- 正则表达式查找字符串_如何简单理解正则表达式?只需1分钟就可以看到她优美的舞姿...
- 时间复杂度与空间复杂度小结
- 动态规划时间复杂度_算法分析与设计之动态规划
- 芒果iOS开发之Swift教程01-Swift基础
- 松下服务器维修论坛,[分享] 松下空调电脑板维修手记
- 温度及pH敏感性聚乙烯醇/羧甲基壳聚糖水凝胶/金银花多糖/薄荷多糖/O-羧甲基壳聚糖水凝胶
- Windows11查看处理器以及显卡型号
- 【Linux】Shell脚本:while read line无法读取最后一行???
- java lambda表达式 list转string
- 活动回顾丨研发效能度量线下沙龙圆满举办
- 类的访问权限-public、private、protected
- F014-正本清源话通缩 #F1175