首页 >后端开发 >C++ >在 C 中如何验证字符串或 char* 是否仅包含数字?

在 C 中如何验证字符串或 char* 是否仅包含数字?

Patricia Arquette
Patricia Arquette原创
2024-11-03 04:18:30716浏览

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