我必须用 C 语言编写函数
atof()
,但仅使用指针,代码的“骨架”必须如下所示:
#include <stdio.h>
#define SIZE 1024
float atof(char *s) {
//here comes the code
}
int main() {
float f;
char a[SIZE];
scanf("%s", a);
f = atof(a);
printf("atof(\"%s\") = %f\n", a, f);
return 0;
}
有什么想法吗?
我试过这个:
char integer_part[SIZE], decimal_part[SIZE];
while (*s != '.') {
*integer_part += *s++;
*integer_part -= '0';
}
return *integer_part;
代码期望将字符串转换为浮点数。例如:
atof("12")=12,
atof("123.456")=123.456,
atof("-123.456")=-123.456,
atof("-123.456e2")=-12345.6,
atof("-123.456e-2")=-1.23456
您可以使用
sscanf
(在<stdio.h>
中定义):
float atof(const char *s) {
float f;
sscanf(s, "%f", &f);
return f;
}