2011-04-27 13 views
3

what_if_var[0].price(タイプはchar [10])の値は "$ 15555.665"です。とにかく値( "15555.665"のような)から "$"を取り除き、値を倍精度に変換することはできますか?構造変数の特殊文字を削除します

+1

価格がchar [10]の場合、値 '$ 15555.665'はバッファオーバーランです。慎重。 –

+0

@Paul良いキャッチ。 @jcrshankar nulターミネータには11番目のバイトが必要です。 – chrisaycock

+0

偉大なポール..私は例としてそれを与えた。 – jcrshankar

答えて

5

あなたは常に'$'は最初の文字であることを行っていることがわかっている場合は、あなただけの試みることができる:

double num = strtod (what_if_var[0].price + 1, NULL); 
+0

あなたは 'atof()'を呼び出すこともできますが、丁寧な社会の中には非推奨のものがあると考える人もいます。 – chrisaycock

+0

ありがとうございましたchris ...文字列を二重に変換するにはとにかくありますか? – jcrshankar

+0

@jcrshankar 'strtod()'は "* string * to * double *"の略です。これはまさにあなたが探している機能です。 – chrisaycock

1

を機能strtodをチェックし、倍増する文字列を変換します。

関連する問題