问题描述:

自己实现一个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函数相关推荐

  1. 编写实现atoi函数

    题目:给定一个字符串,要求转成整数,不允许使用atoi或者其它类似库函数. 方案:实现这个函数并不难,但是要考虑以下几个问题 1.考虑字符串为空指针的时候            2.考虑字符串为空串 ...

  2. C语言atoi()函数用法

    C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...

  3. atoi()函数定义

    原型:int  atoi (const  char  *nptr) 用法:#include  <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前 ...

  4. C语言atoi()函数(字符串转整数int类型)(atol()转换为long)

    需包含头文件:C 标准库 - <stdlib.h> 文章目录 描述 声明 参数 返回值 实例 在windows VS上测试 20211206 用atoi转换long,发现溢出了 描述 C ...

  5. linux中atoi函数的实现 值得借鉴,【转】atoi()函数的实现

    atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回( ...

  6. C语言中atoi()函数的用法

    C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...

  7. Linux下main函数带参数问题和atoi函数详解

    1.main函数带参数 基本格式:main(int argc,char * argv[]) argc参数保存命令行参数的个数,是整形变量 具体用法可有如下代码看下: a1.c: #include &l ...

  8. atoi函数_吊打面试官 | 腾讯经典考点写代码实现atoi函数

    点击蓝字关注我哦 以下是本期干货视频视频后还附有文字版本哦 ▼<腾讯经典考点-写代码实现atoi函数>▼ ps:请在WiFi环境下打开,如果有钱任性请随意 在腾讯面试时,经常会被问到如何用 ...

  9. C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset

    atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...

  10. C atoi函数

    作用 atoi()函数将数字格式的字符串转换为整数类型.例如,将字符串1253124127转换成数字1253124127. 注意 首要注意 atoi函数可以转化如下这种字符串 1fdafhdjfhka ...

最新文章

  1. C++手册_迅为干货 | C程序调用shell
  2. 一些VR延迟优化方法
  3. 危机下,你还敢提加薪吗?
  4. 调用cmd不显示黑框的方法
  5. 如何在IntelliJ IDEA中快速配置Tomcat
  6. 微软解释 Edge 浏览器比 Chrome 更加安全的原因
  7. 【Maven学习】Maven打包生成包含所有依赖的jar包
  8. 系统梳理 Tensorflow、PyTorch 等深度学习框架,洞悉 AI 系统底层原理和算法
  9. 正则表达式查找字符串_如何简单理解正则表达式?只需1分钟就可以看到她优美的舞姿...
  10. 时间复杂度与空间复杂度小结
  11. 动态规划时间复杂度_算法分析与设计之动态规划
  12. 芒果iOS开发之Swift教程01-Swift基础
  13. 松下服务器维修论坛,[分享] 松下空调电脑板维修手记
  14. 温度及pH敏感性聚乙烯醇/羧甲基壳聚糖水凝胶/金银花多糖/薄荷多糖/O-羧甲基壳聚糖水凝胶
  15. Windows11查看处理器以及显卡型号
  16. 【Linux】Shell脚本:while read line无法读取最后一行???
  17. java lambda表达式 list转string
  18. 活动回顾丨研发效能度量线下沙龙圆满举办
  19. 类的访问权限-public、private、protected
  20. F014-正本清源话通缩 #F1175

热门文章

  1. init函数及其使用(go语言基础语法)
  2. 从面向对象设计思想出发理解Spring AOP编程
  3. 红米机器人倒地_红米出现一个小人维修android机器人
  4. 通道注意力机制keras_在TensorFlow+Keras环境下使用RoI池化一步步实现注意力机制
  5. 软件测试方法的分类及工具推荐
  6. 专访王威廉:NLP哪些研究方向更容易取得突破?
  7. jkd1.8 list.stream()练习
  8. 区块链浏览器在linux下部署
  9. TabLayout使用介绍
  10. Aforge做图像处理