首页 > 编程知识 正文

atof函数原理,c语言中atof

时间:2023-05-06 14:44:44 阅读:239771 作者:760

知识点

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;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。