【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.22745

文字列を数値に変える自作関数
投稿者---まんまる(2005/08/19 10:35:53)


こんにちは、お世話になっております。
文字列を数値型にして返す、という関数を作成しています。
小数点がない場合は正常に動くのですが、小数点を含む場合にどうしたら言いかわかりません。
"1000"という文字列がある場合は 1000 と返せるのですが、"10.2"とあったらきちんと帰ってきてくれないのです。
ソースは下記のようになっております。どなたかご教授をよろしくお願いいたします。

<pre>
float getnumber(char *s)
{
 int sign = 1;
 float i = 0,j = 0;
 float num = 0;

 if (*s == '-') {
  sign = -1;
  s++;
 }

 for ( j = 0; j < strlen(s); j++){
  if( *s >= '0' && *s <= '9' ){
   i = i * 10 + *s - '0';
  }
/*else if ( *s == '.'){
   i = i + *s;
  }
*/
  s++;
 }

 num = i * sign;
 return num;

}
</pre>


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字列を数値に変える自作関数 22746 まんまる 2005/08/19 11:45:00


No.22746

Re:文字列を数値に変える自作関数
投稿者---まんまる(2005/08/19 11:45:00)


自己解決しました。
まったく方法が思いつかず悩んでいたら、
標準ライブラリ関数 atof というのがあるのを教えていただいたので、
それをを使用することにしました。
申し訳ありません・・・。


この投稿にコメントする

削除パスワード

No.22747

Re:文字列を数値に変える自作関数
投稿者---nop(2005/08/19 12:59:48)


>標準ライブラリ関数 atof というのがあるのを教えていただいたので、
>それをを使用することにしました。

他にも strtod()やsscanf() などもあるよ。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧