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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 04:18:30672ブラウズ

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 サイトの他の関連記事を参照してください。

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