atof函数:把字符串s转换为相应的双精度浮点数
#include <ctype.h> /* atof函数:把字符串s转换为相应的双精度浮点数 */ double atof(char s[]) { double val, power; int i, sign; for(i = 0; isspace(s[i]); i++) /* 跳过空白符 */ ; sign = (s[i] == '-') ? -1 : 1; if(s[i] == '+' || s[i] == '-') i++; for(val = 0.0; isdigit(s[i]); i++) val = 10.0 * val + (s[i] - '0'); if(s[i] == '.') i++; for(power = 1.0; isdigit(s[i]); i++){ val = 10.0 * val + (s[i] - '0'); power *= 10.0; } return sign * val / power; }
简单计算器程序
#include <stdio.h> #define MAXLINE 100 /* 简单计算器程序 */ main() { double sum, atof(char []); char line[MAXLINE]; int getline(char line[], int max); sum = 0; while(getline(line, MAXLINE) > 0) printf("\t%g\n", sum += atof(line)); return 0; }
atoi函数:利用atof函数把字符串s转换为整数
/* atoi函数:利用atof函数把字符串s转换为整数 */ int atoi(char s[]) { double atof(char s[]); return (int)atof(s); }