ホームページ > バックエンド開発 > C++ > C で文字列または char* に数字のみが含まれているかどうかを確認するにはどうすればよいですか?

C で文字列または char* に数字のみが含まれているかどうかを確認するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-03 04:18:30
オリジナル
753 人が閲覧しました

How Can I Verify if a String or char* Contains Only Digits in C  ?

C での数字のみの文字列のチェック

文字列または char* に数字のみが含まれているかどうかを判断することは、プログラミングにおける一般的なタスクです。この記事では、次の 2 つの効率的なアプローチについて説明します。

1. find_first_not_of

の使用 このメソッドは文字列を反復処理して、最初の非数字文字を検索します。何も見つからない場合 (find_first_not_of("0123456789") は std::string::npos を返します)、文字列は数字のみとみなされます:

<code class="cpp">bool is_digits(const std::string &amp;str)
{
    return str.find_first_not_of("0123456789") == std::string::npos;
}</code>
ログイン後にコピー

2。 std::all_of の使用 (C 11 以降)

このメソッドは述語を利用して文字列の各文字をチェックします。この場合、述語は ::isdigital で、数字文字に対して true を返します:

<code class="cpp">bool is_digits(const std::string &amp;str)
{
    return std::all_of(str.begin(), str.end(), ::isdigit); // C++11
}</code>
ログイン後にコピー

関数は文字列と char* の両方に適用されますか?

はい、これらの関数は少し変更を加えれば std::string と char* の両方に使用できます。 char* の場合、std::string コンストラクターを使用して char* を std::string:

<code class="cpp">bool is_digits(const char *str)
{
    std::string str_copy(str);
    return is_digits(str_copy);
}</code>
ログイン後にコピー
に変換できます。

以上がC で文字列または char* に数字のみが含まれているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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