C言語 文字列を浮動小数点( double型 )に変換 - stdlib.h - [ strtod ]
2008.10.31 Friday | by LRESULT
文字列を浮動小数点( double型 )に変換するには、strtod()を使います。
書式 | double strtod( const char *s, char **ends ) |
---|---|
機能 | 文字列を浮動小数点( double型 )に変換 |
引数 | const char *s : 変換元の文字列 char **ends : 変換が不可能だった文字列を格納するポインタ |
戻り値 | double型に変換された値 |
引数に、見慣れないダブルポインタの char **ends がありますが、
これは、"123.12345ABC" という文字列があった場合に、double型に変換できない "ABC" を
格納する為のものです。
その場合の戻り値は、123.12345 のみとなります。
まずは、サンプルコードを見れば分かると思います。
文字列である「123.12345ABC」を、double型の「123.12345」に変換し、 変換出来なかった文字列「ABC」を確認してみます。 |
---|
#include <stdio.h> int main(void) d = strtod( s, &ends ); printf( "変換元の文字列:%s¥n", s ); return 0; |
変換もとの文字列:123.12345ABC double型に変換された値:123.12345 変換出来なかった文字列:ABC |
---|
これで、大体分かりましたね。 前にある数値の箇所が変換されるわけです。 ダブルポインタの、endsも char *ends で宣言した後に 引数として &ends を渡せば良いわけです。 |