指针-atof函数编程怎么理解?

问题描述

atof函数编程怎么理解?
double myatof(char *p)//将字符串转换为浮点型,暂时只限小数点格式(如:342.678)
{
double n=0;
int i=-1;
while( 1 )
{
if (isdigit(*p)) //如果是数字
{
n = n*10 + (*p) -'0';
if(i != -1) i++; //小数位数i计数
}
else if ( *p == '.' && i == -1) //如果是第一个小数点
i=0; //开启小数位数i计数
else
break;
p++;
}
for(; i>0; i--) //根据小数位数i,将n取为原来的(10^i)分之一
n /= 10;

return n;
}
C语言刚学,这个代码有注释还是看不太懂,讲一下思路吧。。。

解决方案

将1个字符串转换为1个浮点数
如:
float f = atof(""123.456"");
//f = 123.456

解决方案二:

 float f = atof(""123.456"");

解决方案三:
[code=c]
字符串和数字之间进行转换的函数类似的还有
[/code]

解决方案四:
跟atof的思路一样的

解决方案五:
首先将字符类型的‘0’~‘9’转化为double类型,再乘以相应的权重,比如字符输入‘1’‘2’‘3’转化为1*100+2*10+3,如果遇到小数点,则在此时
开始计算小数点后的位数,如果小数点后有n位,就除以10的n次方,
例如 输入字符‘1’‘2’‘3’'.'‘4’‘5’计算为(1*10000+2*1000+3*100+4*10+5)/(10的2次方)

时间: 2024-08-30 22:16:30

指针-atof函数编程怎么理解?的相关文章

指针的入门和理解

/* ============================================================================ Name : TestPointer.c Author : lf Version : Copyright : Your copyright notice Description : 指针的入门和理解 一个程序载入内存时,系统会为变量和函数均分配内存,所以每个变量和函数都有其对应的内存 地址. 所以在C语言中有一个很常见的操作&就是用来取地

深入理解c++指针的指针和指针的引用_C 语言

展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它.(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递. 如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来 的值.我们用下边的代码说明一下问题: int m_value = 1; void func(int *p) { p = &m_value; } i

直观理解C语言中指向一位数组与二维数组的指针_C 语言

一维数组和指针:对于一位数组和指针是很好理解的: 一维数组名: 对于这样的一维数组:int a[5];  a作为数组名就是我们数组的首地址, a是一个地址常量 . 首先说说常量和变量的关系, 对于变量来说, 用箱子去比喻再好不过了, 声明一个变量就声明一个箱子,比如我们开辟出一个苹果类型的箱子, 给这个变量赋值就是把盛放苹果的箱子中放入一个实实在在的苹果, 这就是变量的赋值.  而对于数组来说, 就是一组类型相同的箱子中,一组苹果箱子, 可以放入不同的苹果. 一维数组空间: 变量被声明后, 我们

字符串-这一小段c程序怎么理解?

问题描述 这一小段c程序怎么理解? int main(void){ char str[81]; char *p temp; int inlength; gets(str); for (p = stri=0n = strlen(str); i<n/2; i++)//将整个字符串倒序 { temp = *(p+n-1-i); *(p+n-1-i) = *(p+i); *(p+i) = temp; } puts(str); p = str; length=0; 解决方案 for实现的功能就是第一个和倒

c++指针的应用及注意问题

指针是c/c++学习一个比较让人头痛的问题,在程序设计过程中,指针也往往是产生隐含bug的原因.下面就来谈谈指针的应用以及需要注意的一些问题,里面也许就有你平时没有注意到的问题,希望能帮助各位读者理解好指针. 一.我们先来回忆一下指针的概念吧,方便下面的介绍 指针是存放地址值的变量或者常量.例如:int a=1;&a就表示指针常量("&"表示取地址运算符,也即引用).int *b,b表示的是指针变量(注意,是b表示指针变量而不是*b),*表示要说明的是指针变量.大家注意

C/C++语言void及void指针深层探索

1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. 2.void的含义 void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据. void几乎只有"注释"和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义: void a; 这行语句编译时

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+   指针数组: 在一个数组中,如果它的元素全部都是指针

指针

指针 指针 指针代表着C语言特定的一个强大的特性,同时也是最让我们害怕的.其中一些畏惧和焦虑来自于在C语言中以一种可笑的荒谬的方式来使用.一般的教程和课程值通过提问学生,让学生解读十分怪异的指针语法组合来讲解指针,很少去在实践中去使用指针.你可能已经看到过许多奇异的指针语法(你将会再次看到),但是,指针没有必要必须要用奇异的难以理解的方式去使用.典型的指针是非常容易理解的. 底线是指针允许你动态分配内存块,你将会使用指针去处理变量,而这些变量都是已经在堆中分配过的.(你可以使用指针去处理栈变量,

void及void指针含义的深刻解析

转载地址:http://blog.csdn.net/geekcome/article/details/6249151 void的含义:     void即"无类型",void *则为"无类型指针",可以指向任何数据类型. void指针使用规范:     ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值.例如:     int * pint;     void *pvoid;     pvoid = pint; /* 不过不能 pin