数値以外の文字列に対する特別な処理を使用して C で文字列を double に変換する
C では、文字列を double に変換することは次のようにシームレスに実行できます。組み込み関数。ただし、数値文字列と非数値文字列を区別することが重要になります。この課題に対処するために、数値以外の文字列に対して 0 を返すソリューションを紹介します。
関数の実装:
ソリューションの中核は string_to_double 関数にあります。
<code class="cpp">#include <sstream> double string_to_double(const std::string& s) { std::istringstream i(s); double x; if (!(i >> x)) return 0; return x; }</code>
仕組み:
関数のテスト:
提供されたテスト ケースでは、関数がさまざまな数値文字列と数値以外の文字列を正しく解釈する方法を示します:
<code class="cpp">int main() { assert(0.5 == string_to_double("0.5")); assert(0.5 == string_to_double("0.5 ")); assert(0.5 == string_to_double(" 0.5")); assert(0.5 == string_to_double("0.5a")); // Non-numerical strings will return 0: assert(0 == string_to_double("foobar")); }</code>
制限事項:
非数値文字列に対して 0 を返すという特定の要件により、ゼロを表す数値文字列と真の非数値文字列を区別することができないことに注意することが重要です。
以上がC で文字列を double に安全に変換し、数値以外の文字列を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。