首頁 >後端開發 >C++ >在 C 中如何驗證字串或 char* 是否僅包含數字?

在 C 中如何驗證字串或 char* 是否僅包含數字?

Patricia Arquette
Patricia Arquette原創
2024-11-03 04:18:30719瀏覽

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

在 C 中檢查僅數字字串

確定字串或 char* 是否僅包含數字是程式設計中的常見任務。本文探討了兩種有效的方法:

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 以上)

此方法利用謂詞來檢查字串的每個字元。在本例中,謂詞為 ::isdigit,它對於數字字元傳回 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn