在 C 中检查仅数字字符串
确定字符串或 char* 是否仅包含数字是编程中的常见任务。本文探讨了两种有效的方法:
1。使用 find_first_not_of
此方法迭代字符串,搜索第一个非数字字符。如果没有找到(find_first_not_of("0123456789") 返回 std::string::npos),则该字符串被视为仅数字:
<code class="cpp">bool is_digits(const std::string &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 &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中文网其他相关文章!