知识点

atoi函数:将字符串转换为整型
atof函数:将字符串转换为浮点类型

这里我们需要用到字符与ascii码一一对应的知识,对于atof函数我们可以首先忽略小数点,每次取一个数,再将上次得到的数乘以10求和,得到一个大整数后再将小数点左移即可。而atoi函数可以借助atof函数+取整完成。

**注:**这里需要对字符串进行去除空白以及符号进行特判。


#include <bits/stdc++.h>
using namespace std;/* 字符串转浮点数 */
double my_atof(const char *num) {double val, power;int i, sign;for(i = 0; isspace(num[i]); ++i); /* 去除空白符 */sign = num[i] == '-' ? -1 : 1;if(num[i] == '+' || num[i] == '-')i++; /* 去掉符号 */for(val = 0.0; isdigit(num[i]); ++i) val = val * 10 + num[i] - '0';if(num[i] == '.')i++;for(power = 1.0; isdigit(num[i]); ++i) {val = val * 10 + num[i] - '0';power *= 10.0;}return val * sign / power;
}/* 字符串转整数 */
int my_atoi(const char *num) {return (int) atof(num);
}int main()
{char * s1 = "12.34";char * s2 = "123123";cout << my_atof(s1) << endl;cout << my_atoi(s2) << endl;return 0;
}

【C程序设计语言第二版】atoi和atof函数的实现相关推荐

  1. C程序设计语言第二版·新版,C程序设计语言(第2版·新版) PDF扫描版[19MB]

    C程序设计语言(第2版·新版) 内容简介: 本书是由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作.全面 ...

  2. 【荐书】C程序设计语言(第二版)

    "在大多数人眼中,我是个一事无成.乖僻古怪.令人作呕的人.我毫无社会地位可言,也永远不会有.总之,我是底层人中的底层人.好吧,就算这些看法都完全正确,我也想有那么一天,通过我的作品向他们展示 ...

  3. rust程序设计语言第二版_C语言程序设计(山东联盟青岛大学版)

    第一章 单元测试 1.单选题: 在C语言中,下面标识符非法的是( ). 选项: A:abc3 B:SUMC:sum& D:_name 2.单选题: C语言源程序要正确地运行,必须要有( ). ...

  4. 数据结构(C语言)第二版 第一章课后答案

    数据结构(C语言)第二版 第一章课后答案 这本书,我以后也会用,所以趁着考完试做个整理,顺便分享出来.电子资源发不出来,放评论区吧,有需要自取. 1. 简述下列概念:数据.数据元素.数据项.数据对象. ...

  5. 勘误表:《网络程序设计(第二版)》西安电子科技大学出版社

    勘误表是本人自己在上这门课时整理的,欢迎大家补充,本人联系方式zhongyi1997@126.com. <网络程序设计(第二版)>,西安电子科技大学出版社 (封面是这样风格的,暂时没找到匹 ...

  6. c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt

    C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...

  7. 数据结构(C语言)第二版 第四章课后答案

    数据结构(C语言)第二版 第四章课后答案 1~5 B B C A B 6~10 B B C B B 11~15 A B D (C,B) C 1.选择题 (1)串是一种特殊的线性表,其特殊性体现在(B) ...

  8. 数据结构(C语言第二版)严蔚敏编,数据结构电子教材,线性表,栈,队列,顺序存储结构,初始化,入栈,出栈,入队,出队,c++

    前言 提示:本篇文章收录严蔚敏编写的数据结构C语言版本 简单介绍一下顺序表,顺序栈,循环队列,的顺序存储结构之间的区别 代码参考严蔚敏编写的<数据结构>,二维码动态演示可扫码可观看. - ...

  9. C++面向对象程序设计(第二版)

    C++面向对象程序设计(第二版) [1]第一章 什么是面向对象程序设计?  程序=对象+消息  (1)程序由类的定义和类的使用两部分组成  (2)程序中的一切操作都是通过向对象发送消息来实现的,对象接 ...

最新文章

  1. 一个机械系毕业生的感言
  2. THYMELEAF 如何用TH:IF做条件判断
  3. 13.ThreadPoolExecutor线程池之submit方法
  4. 同时买票是怎么实现的_去巴黎玩怎么买地铁票最划算?| 巴黎最全交通攻略
  5. [Golang]slice的用法以及和数组的区别
  6. Pagination(分页) 从前台到后端总结
  7. 打地鼠程序设计c语言,打地鼠游戏的制作(C语言)含代码.ppt
  8. Nginx配置域名重定向/域名跳转
  9. Python 安装 tensorflow
  10. 算法24c语言,EEPROM(AT24C16)页写算法
  11. docker-compose 安装 Kafka 3.X 附带可视化界面
  12. 麻雀优化算法 优化XGBoost的参数 python代码
  13. AVL树 01 AVL树基础
  14. 就在刚刚 Kubernetes 1.25 正式发布,包括这些重大变化
  15. php实现播放直播_php和腾讯直播的实现代码
  16. uva 378Intersecting Lines
  17. android SDK-25事件分发机制--源码正确解析
  18. [转]《101个爱情故事》
  19. 基于AT89C51/52和DS18B20的温度传感器设计报告(后附代码)
  20. excel拆分成多个文档怎么做?

热门文章

  1. 《ROS机器人程序设计》期末测评试卷 (ROS2)
  2. 【Python】调用摄像头实现定时拍照监控
  3. 免费版idea字体大小设置
  4. 【Vue+DRF生鲜电商】28.支付宝支付接口类解读,支付逻辑编辑
  5. DNS关键词:DNS工作原理、A记录、CNAME记录、MX记录、PTR记录、SOA记录、NS记录
  6. 保护大数据的基本原理
  7. rematch的基本用法
  8. 搜狗站群赚钱的盈利模式有哪些?
  9. 【学习笔记】计算几何
  10. linux 64嵌入汇编语言,如何在64位的Linux系统上使用汇编和C语言混合编程