库函数atoi介绍 :

作用:将字符串中的数字转换成整形数字

参数:字符串指针

返回类型:int整形

模拟实现代码如下:

#define _CRT_SECURE_NO_WARNINGS 1// 模拟实现库函数atoi
#include <stdio.h>
#include <assert.h>
#include <ctype.h>
#include <limits.h>enum State
{VALID,INVILID
};
enum State state = INVILID;
int my_atoi(const char* str)
{// str是空指针assert(str);//str指向的是空字符串if (*str == '\0')return 0;//跳过空白字符while (isspace(*str)){str++;}//识别正负数int flag = 1;if (*str == '+'){str++;}else if (*str == '-'){flag = -1;str++;}long long ret = 0; //判断数字是否越界(int)while (*str){if (isdigit(*str)){ret = ret * 10 + flag*(*str - '0');if (ret > INT_MAX || ret < INT_MIN){return 0; //异常返回}str++; //遇到\0停止}else{state = VALID;return (int)ret;}}state = VALID;return (int)ret;}
int main()
{int ret=my_atoi("   -1234aa");if (state == VALID){printf("合法返回,值为:%d\n", ret);}else{printf("异常返回,值为:%d\n", ret);}return 0;
}

C语言模拟实现库函数 atoi相关推荐

  1. C语言--模拟实现库函数strcpy

    目录 前言 strcpy实现的基本原理 函数的模拟实现 代码优化 assert--断言 const关键字 strcpy的返回值 结语 前言 本章内容我们将通过相关函数来实现库函数中的strcpy. s ...

  2. C语言模拟实现:atoi函数

    在实现atoi之前我们先来了解一下atoi函数的作用是什么: 目录 1.实例演示 2.模拟实现 2.1 判断是否为空指针 2.2判断是否为空字符串 2.3判断正负号 2.4判断非数字字符 2.5判断是 ...

  3. c语言模拟实现库函数strcat,【C语言】模拟实现库函数strcat函数

    CSS魔法堂:Reset CSS 下列样式规则可用于最小化各浏览器标签样式的不一致性.注意:实际使用时应该对其进行适当的调整,以适应项目要求. /* http://meyerweb.com/eric/ ...

  4. C语言模拟实现标准库函数之qsort() 2

    C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...

  5. 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)

    前言:对于库函数的使用,我们不仅要会使用方法,更要知晓使用原理,而知晓使用原理最好的方法就是模拟相应库函数的使用. 今天我们就来模拟 strcpy(复制字符串内容) 与 strlen(求字符串长度)这 ...

  6. C语言模拟实现标准库函数之strcpy()

    strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...

  7. c语言atof函数源码,【c语言】模拟实现库函数的atof函数

    // 模拟实现库函数的atof函数 #include #include #include #include double my_atof(char const *p) { double ret = 0 ...

  8. C语言 模拟实现 strlen strcat strcpy函数

    strlen函数 库函数strlen:strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0' ...

  9. 【C语言】重要函数atoi的使用

    目录 一.atoi函数的介绍 二.atoi函数的使用 三.atoi函数的模拟实现 一.atoi函数的介绍 一个专门将字符串转换为整数的库函数,具体用法如下: 字符串str,将其内容转化为整数,该整数作 ...

最新文章

  1. Python中if条件判断语句怎么用?
  2. SpringCloud_RibbonHystrixFeign
  3. Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
  4. PyQt编程之模态与非模态对话框(二)
  5. spring boot中使用Pagehelper实现分页
  6. 创建一个带参数的formgoup_gin框架如何获取带文件的formData请求?
  7. 多线程 进度条 C# .net
  8. csnd ftp服务器端java_数据包取证总结 - osc_r6zeu2c7的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 矩池云上缺少cusparse.h头文件解决方法
  10. java中 IndexOf()、lastIndexOf()、substring()的用法
  11. 【python基础语法】列表的查询操作(包括切片)
  12. 车牌识别 php,eoLinker-API_Shop_OCR-车牌识别_API接口_PHP调用示例代码
  13. 配置CACTI监控MySQL数据库状态(2)安装cacti相关软件包
  14. odb格式Linux,ODB格式文件 如何打开ODB文件 ODB是什么格式的文件 用什么打开 - The X 在线工具...
  15. 3d开发所需要知道的坐标系
  16. 硅谷高效工作法 -知乎大学
  17. 全网最通俗易懂的爬虫教程
  18. TCP BBR之Startup gain的另一种推导法以及最新进展
  19. 昆明拟整治11类陋习 行人翻越隔离设施罚50元
  20. C++输入流ifstream指针重置问题

热门文章

  1. locust压测工具:测试信息输出与分布式模式
  2. beautifulsoup里面的find()和findall()小代码测试
  3. cat在MATLAB中的应用
  4. 【Python基础】拯救你奇丑无比的Python代码的神器
  5. 干货 | OpenCV中KLT光流跟踪原理详解与代码演示
  6. 百度提出PADDLESEG:一个高效的图像分割开发工具
  7. Spring Cloud Alibaba发布第二个版本,Spring 发来贺电
  8. LightOJ 1095 Arrange the Numbers(容斥原理)
  9. 微信小程序如何使用iconfont阿里巴巴图标库?
  10. 四则运算 3.0 结对