C语言模拟实现库函数 atoi
库函数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相关推荐
- C语言--模拟实现库函数strcpy
目录 前言 strcpy实现的基本原理 函数的模拟实现 代码优化 assert--断言 const关键字 strcpy的返回值 结语 前言 本章内容我们将通过相关函数来实现库函数中的strcpy. s ...
- C语言模拟实现:atoi函数
在实现atoi之前我们先来了解一下atoi函数的作用是什么: 目录 1.实例演示 2.模拟实现 2.1 判断是否为空指针 2.2判断是否为空字符串 2.3判断正负号 2.4判断非数字字符 2.5判断是 ...
- c语言模拟实现库函数strcat,【C语言】模拟实现库函数strcat函数
CSS魔法堂:Reset CSS 下列样式规则可用于最小化各浏览器标签样式的不一致性.注意:实际使用时应该对其进行适当的调整,以适应项目要求. /* http://meyerweb.com/eric/ ...
- C语言模拟实现标准库函数之qsort() 2
C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...
- 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)
前言:对于库函数的使用,我们不仅要会使用方法,更要知晓使用原理,而知晓使用原理最好的方法就是模拟相应库函数的使用. 今天我们就来模拟 strcpy(复制字符串内容) 与 strlen(求字符串长度)这 ...
- C语言模拟实现标准库函数之strcpy()
strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...
- c语言atof函数源码,【c语言】模拟实现库函数的atof函数
// 模拟实现库函数的atof函数 #include #include #include #include double my_atof(char const *p) { double ret = 0 ...
- C语言 模拟实现 strlen strcat strcpy函数
strlen函数 库函数strlen:strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0' ...
- 【C语言】重要函数atoi的使用
目录 一.atoi函数的介绍 二.atoi函数的使用 三.atoi函数的模拟实现 一.atoi函数的介绍 一个专门将字符串转换为整数的库函数,具体用法如下: 字符串str,将其内容转化为整数,该整数作 ...
最新文章
- Python中if条件判断语句怎么用?
- SpringCloud_RibbonHystrixFeign
- Django 生成数据库表时的报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
- PyQt编程之模态与非模态对话框(二)
- spring boot中使用Pagehelper实现分页
- 创建一个带参数的formgoup_gin框架如何获取带文件的formData请求?
- 多线程 进度条 C# .net
- csnd ftp服务器端java_数据包取证总结 - osc_r6zeu2c7的个人空间 - OSCHINA - 中文开源技术交流社区...
- 矩池云上缺少cusparse.h头文件解决方法
- java中 IndexOf()、lastIndexOf()、substring()的用法
- 【python基础语法】列表的查询操作(包括切片)
- 车牌识别 php,eoLinker-API_Shop_OCR-车牌识别_API接口_PHP调用示例代码
- 配置CACTI监控MySQL数据库状态(2)安装cacti相关软件包
- odb格式Linux,ODB格式文件 如何打开ODB文件 ODB是什么格式的文件 用什么打开 - The X 在线工具...
- 3d开发所需要知道的坐标系
- 硅谷高效工作法 -知乎大学
- 全网最通俗易懂的爬虫教程
- TCP BBR之Startup gain的另一种推导法以及最新进展
- 昆明拟整治11类陋习 行人翻越隔离设施罚50元
- C++输入流ifstream指针重置问题
热门文章
- locust压测工具:测试信息输出与分布式模式
- beautifulsoup里面的find()和findall()小代码测试
- cat在MATLAB中的应用
- 【Python基础】拯救你奇丑无比的Python代码的神器
- 干货 | OpenCV中KLT光流跟踪原理详解与代码演示
- 百度提出PADDLESEG:一个高效的图像分割开发工具
- Spring Cloud Alibaba发布第二个版本,Spring 发来贺电
- LightOJ 1095 Arrange the Numbers(容斥原理)
- 微信小程序如何使用iconfont阿里巴巴图标库?
- 四则运算 3.0 结对