Если вы просто хотите проверить, содержит ли строка все числовые символы, вы можете использовать std::find_if_not
и std::isdigit
:
std::find_if_not(s.begin(), s.end(), (int(*)(int))std::isdigit) == s.end()
Если у вас нет реализации стандартной библиотеки с std::find_if_not
, вы можете легко написать ее:
template <typename ForwardIt, typename Predicate>
ForwardIt find_if_not(ForwardIt first, ForwardIt last, Predicate pred)
{
for (; first != last; ++first)
if (!pred(first))
return first;
return first;
}