《c程序设计语言》读书笔记-4.2-扩充atof函数
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <math.h>
- #include <time.h>
- #include <ctype.h>
- double atof_num(char s[])
- {
- double val,power = 1.0;
- int i,sign,j,val_lat = 0;
- for(i = 0; isspace(s[i]); i++)
- ;
- sign = (s[i] == '-') ? -1 : 1;
- if(s[i] == '+' || s[i] == '-')
- i++;
- for(val = 0.0; isdigit(s[i]);i++)
- val = 10.0 * val + (s[i] - '0');
- if(s[i] == '.')
- i++;
- for(power = 1.0; isdigit(s[i]);i++)
- {
- val = 10.0 * val + (s[i] - '0');
- power *= 10.0;
- }
- if(s[i] == 'e' || s[i] == 'E')
- {
- i++;
- if(s[i] == '-')
- {
- i++;
- while(isdigit(s[i]))
- {
- val_lat = 10 * val_lat + (s[i] - '0');
- i++;
- }
- for(j = 0;j < val_lat;j++ )
- power *= 10.0;
- return val * sign / power;
- }
- else if(s[i] == '+')
- {
- i++;
- while(isdigit(s[i]))
- {
- val_lat = 10 * val_lat + (s[i] - '0');
- i++;
- }
- for(j = 0;j < val_lat;j++ )
- power /= 10.0;
- return val * sign / power;
- }
- else
- {
- while(isdigit(s[i]))
- {
- val_lat = 10 * val_lat + (s[i] - '0');
- i++;
- }
- for(j = 0;j < val_lat;j++ )
- power /= 10.0;
- return val * sign / power;
- }
- }
- return val * sign / power;
- }
- int main()
- {
- char s[100],c;
- int i = 0;;
- double result;
- while((c = getchar()) != '\n')
- s[i++] = c;
- s[i] = '\0';
- result = atof_num(s);
- printf("%f\n",result);
- return 0;
- }
1、isspace、isdigit函数在ctype.h中;
2、else后面不能加判断语句;
3、s[i++]此类要小心用!
《c程序设计语言》读书笔记-4.2-扩充atof函数的更多相关文章
- 《JavaScript高级程序设计》读书笔记--前言
起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...
- 《Javascript高级程序设计》读书笔记之对象创建
<javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决 ...
- MDX Step by Step 读书笔记(七) - Performing Aggregation 聚合函数之 Max, Min, Count , DistinctCount 以及其它 TopCount, Generate
MDX 中最大值和最小值 MDX 中最大值和最小值函数的语法和之前看到的 Sum 以及 Aggregate 等聚合函数基本上是一样的: Max( {Set} [, Expression]) Min( ...
- 《c程序设计语言》读书笔记-3-3-速记扩充
#include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> i ...
- JavaScript高级程序设计(读书笔记)(一)
本笔记汇总了作者认为“JavaScript高级程序设计”这本书的前七章知识重点,仅供参考. 第一章 JavaScript简介 JavaScript发展简史: 1995年,JavaScript诞生 19 ...
- 《JavaScript 高级程序设计》读书笔记
文章目录 第三章 基本语法 第四章 变量.作用域和内存问题 第五章 应用类型 1. Array 类型 2. RegExp 类型 3. Function 类型 4. String 类型 第六章 面向对象 ...
- 《JavaScript高级程序设计》读书笔记--(3)引用类型
ECMAScript从技术来说是一门面向对象的语言,但不具备传统的面向对象语言所支持的类和接口等基本结构.虽然引用类型与类看起来类似,但是他们并不是相同的概念.引用类型有时也被成为对象定义,因为它描述 ...
- 《JavaScript高级程序设计》读书笔记
Javascript由以下三部分组成: 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) ECMAScript组成部分: 语法.类型.语句.关键字.保留子.操作符.对象. ...
- 《JavaScript高级程序设计》读书笔记 ---Function 类型
说起来ECMAScript 中什么最有意思,我想那莫过于函数了——而有意思的根源,则在于函数实际上是对象.每个函数都是Function 类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对 ...
随机推荐
- Mysql5.7创建存储过程中调用自定义函数报错Not allowed to return a result set from a function
因为很多存储过程都会共用一段sql语句,所以我把共用的sql封装成一个自定义函数 AddCapital(); 然后通过存储过程调用,创建存储过程会报错1415,Not allowed to retur ...
- MySQL 5.7基于GTID的主从复制环境搭建(一主一从)
Preface As wel all know,replication base on GTID with row format of binary log is comprehens ...
- python 一些基础知识
Python 注释的原理: 原理:根据对象的引用计数器,对象创建会给对象一个引用计数器属性.如果该属性的值为0,那么该对象会被释放.创建一个字符串对象,但是没有任何引用,计数器为0. Python小整 ...
- Oracle导入导出.sql、.dmp文件
Oracle导出导入表(.sql..dmp文件)两种方法 提示:在导入sql和dmp文件之前,先建立用户,指明表空间.其中要注意用户名和表空间最好跟sql文件中的一样. 建表空间授权参考 :http: ...
- 【jQeury】input输入框状态,input事件,blur事件,focus事件
//输入框正在输入时 $("#test1").on('input',function(){ alert('正在输入'); }) //输入框得到焦点时 $("#test2& ...
- ios 苹果内购订单验证 --- php实现
验证函数: function appleVerify($receipt_data,$orderId = 0) { /* * 21000 App Store不能读取你提供的JSON对象 * 21002 ...
- 通信服务器哈希Socket查找(Delphi)
在Socket通信服务器的开发中,我们经常会需要Socket与某个结构体指针进行绑定.当连接量很大时,意味着需要个高效的查找方法 Delphi中提供了哈希算法类,以此类为基础,修改出Socket专用M ...
- python——内建模块instance的学习
python中内建函数isinstance的用法 语法:isinstance(object,type) 作用:来判断一个对象是否是一个已知的类型. 其第一个参数(object)为对象,第二个参数(ty ...
- Effective Approaches to Attention-based Neural Machine Translation(Global和Local attention)
这篇论文主要是提出了Global attention 和 Local attention 这个论文有一个译文,不过我没细看 Effective Approaches to Attention-base ...
- Reward HDU - 2647
传送门 Dandelion's uncle is a boss of a factory. As the spring festival is coming , he wants to dis ...