#include "if_for_each_element.hpp"
#include <algorithm> // for std::find_if and std::count_if
#include <cctype> // for std::isupper
std::string get_first_uppercase_entry(std::vector<std::string> list)
{
std::vector<std::string> result;
auto pos = std::find_if(
list.begin(),
list.end(),
[&](std::string entry)
{
size_t numberOfUpperCaseChars = std::count_if(entry.begin(), entry.end(), [](unsigned char c)
{
return std::isupper(c);
});
return numberOfUpperCaseChars == entry.length();
}
);
return pos == list.end() ? "" : *pos;
}
std::vector<std::string> get_all_uppercase_entries(std::vector<std::string> list)
{
std::vector<std::string> result;
std::for_each(list.begin(), list.end(), [&](std::string entry)
{
size_t numberOfUpperCaseChars = std::count_if(entry.begin(), entry.end(), [](unsigned char c)
{
return std::isupper(c);
});
if (numberOfUpperCaseChars == entry.length())
{
result.emplace_back(entry);
}
});
return result;
}