我想将 char 数组的一部分转换为 double。例如我有:
char in_string[] = "4014.84954";
假设我想将第40
一个转换为带有 value 的 double 40.0
。到目前为止我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int arg) {
char in_string[] = "4014.84954";
int i = 0;
for(i = 0; i <= sizeof(in_string); i++) {
printf("%c\n", in_string[i]);
printf("%f\n", atof(&in_string[i]));
}
}
在每个循环atof
中,它将 char 数组从我提供的起始指针一直转换到数组的末尾。输出是:
4
4014.849540
0
14.849540
1
14.849540
4
4.849540
.
0.849540
8
84954.000000 etc...
如何将 char 数组的一部分转换为 double?这必须是模块化的,因为我真正的 input_string 要复杂得多,但我会确保 char 是数字 0-9。