标签:
// 模拟实现库函数的atof函数 #include <stdio.h> #include <string.h> #include <assert.h> #include <ctype.h> double my_atof(char const *p) { double ret = 0; int flag = 1; int count = 0; assert(p != NULL); while (isspace(*p)) { p++; } while (*p) { if (count) { count = count * 10; } if (*p == '+') p++; else if (*p == '-') { p++; flag = -1; } else if (*p == '.') { count++; p++; } else if (*p >= '0'&& *p <= '9') { ret = ret * 10 + (*p - '0'); p++; } else return 0; } return ret*flag / count; } int main() { printf("%f\n", my_atof(" +23.45")); printf("%f\n", my_atof(" -2.345")); printf("%f\n", my_atof("+234.5")); printf("%f\n", my_atof("-23.45")); printf("%f\n", my_atof("2.345")); printf("%f\n", my_atof("234.5")); printf("%f\n", my_atof(" .")); printf("%f\n", my_atof("12.3ab")); return 0; } <img src="http://img.blog.csdn.net/20150704160911903?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
标签:
原文地址:http://www.cnblogs.com/lcchuguo/p/5386403.html