C言語 文字列を浮動小数点( double型 )に変換 - stdlib.h - [ strtod ]

2008.10.31 Friday | by LRESULT


字列を浮動小数点( double型 )に変換するには、strtod()を使います。


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>
#include <stdlib.h>

int main(void)
{
  char *s = "123.12345ABC";
  char *ends;
  double d;

  d = strtod( s, &ends );

  printf( "変換元の文字列:%s¥n", s );
  printf( "double型に変換された値:%.5f¥n", d );
  printf( "変換出来なかった文字列:%s¥n", ends );

  return 0;
}



結果
変換もとの文字列:123.12345ABC
double型に変換された値:123.12345
変換出来なかった文字列:ABC
これで、大体分かりましたね。
前にある数値の箇所が変換されるわけです。

ダブルポインタの、endsも char *ends で宣言した後に
引数として &ends を渡せば良いわけです。

カテゴリ:C言語 stdlib.h | 23:30 | comments(1) | trackbacks(0) | -


コメント

管理者の承認待ちコメントです。

| - | 2011/11/09 9:53 AM |

コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/94

トラックバック