模拟实现atof函数
2018-02-28 21:52
267 查看
atof()函数
atof():double atof(const char* str);功能:把字符串转换成浮点数str:要转换的字符串返回值:返回值为double值。如果该输入无法转换为该类型的值,则返回值为0.0问题:1.跳过空格字符 2.记录正负值 3.遇到数字才开始转换,如果是非数字或字符串结束('\0')结束转换
atof():double atof(const char* str);功能:把字符串转换成浮点数str:要转换的字符串返回值:返回值为double值。如果该输入无法转换为该类型的值,则返回值为0.0问题:1.跳过空格字符 2.记录正负值 3.遇到数字才开始转换,如果是非数字或字符串结束('\0')结束转换
#include<iostream> using namespace std; double my_atof(const char* str) { double s = 0.0; double d = 10.0; int jishu = 0; while (*str == ' ') { str++; } bool flag = false; while (*str == '-')//记录数字正负 { flag = true; str++; } if (!(*str >= '0'&&*str <= '9'))//非数字则退出 { return s; } while (*str >= '0'&&*str <= '9'&&*str != '.')//计算小数点前整数部分 { s = s*10.0 + *str - '0'; str++; } if (*str == '.')//小数点 str++; while (*str >= '0'&&*str <= '9')//小数点后面部分 { s = s + (*str - '0') / d; d = d*10.0; str++; } if (*str == 'e' || *str == 'E')//考虑科学计数法 { str++; if (*str == '+') { str++; while (*str >= '0'&&*str <= '9') { jishu = jishu * 10 + *str - '0'; str++; } while (jishu > 0) { s = s * 10; jishu--; } } if (*str == '-') { str++; while (*str >= '0'&&*str <= '9') { jishu = jishu * 10 + *str - '0'; str++; } while (jishu > 0) { s = s / 10; jishu--; } } } return s*(flag ? -1.0 : 1.0); } int main() { char *s1 = "123.456e-10"; char *s2 = "123.456e-10"; double sum1 = my_atof(s1); double sum2 = atof(s2); char *r1 = "-123.456e-10"; char *r2 = "-123.456e-10"; double ret1 = my_atof(r1); double ret2= atof(r2); cout << ret1 << endl; cout << ret2 << endl; system("pause"); return 0; }
相关文章推荐
- 【c语言】模拟实现库函数的atof函数
- strlen函数详解及模拟实现
- 【C语言】keybd_event 函数,实现模拟按键操作
- 模拟实现printf函数,可完成下面的功能 能完成下面函数的调用。 print("s ccc d.\n","hello",'b','i','t',100); 函数原型: print(char *
- 模拟实现 strncpy strncat strncmp strchr strrchr 函数
- 模拟实现 memcpy memmove 函数
- 从0开始<十>:atof 函数的简单实现
- C++中atof函数的实现和atoi的实现
- 字符串操作函数模拟实现大全
- QThead实现模拟VC工作线程函数
- day26之模拟实现memcpy和memmove函数
- 回调函数,回调函数应用,qsort函数用法,以及模拟实现qsort函数
- C语言50题之模拟实现atof、atoi
- 模拟实现C库函数:strchr、strcmp、strstr、memcpy和memmove
- 模拟实现 strcpy strcat strstr strcmp 函数
- 集合的模拟实现(函数模板)
- 字符串函数---atof()函数详解及实现(完整版)
- js实现调用方法(函数)时可动态传入不同参数个数、模拟实现方法(函数)重载
- atoi(),atof等函数的实现
- 自己实现的atio()和atof()函数