ホームページ  >  記事  >  バックエンド開発  >  C で文字列から整数への変換エラーを処理する方法

C で文字列から整数への変換エラーを処理する方法

DDD
DDDオリジナル
2024-11-04 21:32:02568ブラウズ

How to Handle String to Integer Conversion Failures in C  ?

C での失敗処理を使用した文字列の整数への変換

C で文字列を扱うとき、数値表現に変換する必要が生じることがよくあります。整数など。これに対する一般的なアプローチの 1 つは、C 標準ライブラリの std::stoi 関数を使用することです。ただし、この関数には変換の失敗を報告する機能がありません。より堅牢なコードについては、boost::lexical_cast と別のアプローチを使用して失敗した変換を処理する方法を検討します。

boost::lexical_cast

boost::lexical_cast 関数文字列を整数に変換する堅牢な方法を提供します。変換を実行できない場合は例外がスローされます。次のコード スニペットは、その使用法を示しています:

<code class="cpp">#include <boost/lexical_cast.hpp>

try {
    int i = boost::lexical_cast<int>(s);
    // ...
} catch(...) {
    // ...
}</code>

非ブースト アプローチ

ブースト ライブラリが利用できない場合は、代替方法を使用できます:

  1. std::stringstream の使用: 文字列を std::stringstream オブジェクトに読み取ることにより、文字列を整数として読み取ることができないか、追加の非整数がある場合、変換に失敗する可能性があります。
  2. カスタム lexical_cast 関数の作成: この関数は、テンプレート 内で std::stringstream アプローチをラップすることで実装できます。 function.
  3. std::stringstream アプローチの非スロー バージョンの使用: 例外のスローを回避したい場合は、成功または失敗を示すブール値を返す lexical_cast 関数を作成できます。

要約すると、boost::lexical_cast、std::stringstream、またはカスタム lexical_cast 関数を使用すると、失敗処理機能を備えた文字列から整数への堅牢な変換が可能になります。正しい選択は、ライブラリの可用性と必要な例外動作によって異なります。

以上がC で文字列から整数への変換エラーを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。