char 配列のセクションを double に変換したいと考えています。たとえば、私は持っています:
char in_string[] = "4014.84954";
40
最初の値を double の valueに変換したいとします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 の数字であることを保証します。