ホームページ > バックエンド開発 > C++ > C 文字列が数値を表しているかどうかを効率的に判断するにはどうすればよいですか?

C 文字列が数値を表しているかどうかを効率的に判断するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-24 05:33:21
オリジナル
370 人が閲覧しました

How Can I Efficiently Determine if a C   String Represents a Number?

文字列が C の数値であるかどうかを判断する

テキストベースのデータを扱う場合、指定された文字列が数値であるかどうかを判断する必要がある場合があります。 string は数値を表します。 C では、これに対処するための複数のアプローチがあります。

1 つの方法は、文字列に数字以外の文字が含まれているかどうかを確認することです。そうである場合、その文字列は数値ではありません。このアプローチに従う関数を次に示します。

bool is_number(const std::string& s) {
  std::string::const_iterator it = s.begin();
  while (it != s.end() && std::isdigit(*it)) ++it;
  return !s.empty() && it == s.end();
}
ログイン後にコピー

代わりに、C 11 ではより簡潔な構文が提供されます。

bool is_number(const std::string& s) {
  return !s.empty() && std::find_if(s.begin(), s.end(), [](unsigned char c) { return !std::isdigit(c); }) == s.end();
}
ログイン後にコピー

これらの関数はどちらも、文字列に数字のみが含まれていることを検証します。ただし、これらは正の整数に対してのみ機能します。負の整数または分数をサポートするように拡張するには、より堅牢なライブラリベースのソリューションが必要になります。数字以外の文字をチェックするか、C 11 を使用することで、特定のニーズに合わせて文字列が数値を表すかどうかを効率的に判断できます。

以上がC 文字列が数値を表しているかどうかを効率的に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート