atof函数原理,c语言中atof

知识点

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

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

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

#include <bits/stdc++.h>using namespace std;/* 字符串转浮点数 */double my_atofconst char *num) { double val, power; int i, sign; fori = 0; isspacenum[i]); ++i); /* 去除空白符 */ sign = num[i] == ‘-‘ ? -1 : 1; ifnum[i] == ‘+’ || num[i] == ‘-‘)i++; /* 去掉符号 */ forval = 0.0; isdigitnum[i]); ++i) val = val * 10 + num[i] – ‘0’; ifnum[i] == ‘.’)i++; forpower = 1.0; isdigitnum[i]); ++i) { val = val * 10 + num[i] – ‘0’; power *= 10.0; } return val * sign / power;}/* 字符串转整数 */int my_atoiconst char *num) { return int) atofnum);}int main){ char * s1 = “12.34”; char * s2 = “123123”; cout << my_atofs1) << endl; cout << my_atois2) << endl; return 0;}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注