#include <boost/spirit/home/support/char_encoding/ascii.hpp>
bool IsStringAllNonLowercaseA(const std::string& str)
{
std::string newStr(str);
boost::to_upper(newStr);
if (newStr == str)
return true;
else
return false;
}
bool IsStringAllNonLowercaseB(const std::string& str)
{
for (std::string::const_iterator iter=str.begin(); iter != str.end(); ++iter)
{
if (boost::spirit::char_encoding::ascii::islower(*iter))
return false;
}
return true;
}
Question> Je cherche un moyen efficace de vérifier si un std::string
contient majuscules. Ce sera mieux s'il y a une fonction standard de la bibliothèque C++ standard ou boost.Vérifiez si std :: string contient des caractères minuscules?
J'ai implémenté deux versions de moi-même. Mais je ne suis pas sûr qu'ils soient assez bons. Toute suggestion et commentaire sont les bienvenus.
http://codereview.stackexchange.com –
S'il vous plaît définir ce que «assez bon» signifie. Selon quels critères envisagez-vous de sélectionner la «meilleure» réponse parmi les réponses obtenues ici? Notez également que la détection de caractères minuscules (comme le demande le titre) n'est pas la même chose que la détection si les caractères sont tous en majuscules (comme le corps le demande). La ponctuation, les caractères d'Extrême-Orient, les symboles et les chiffres ne sont habituellement ni l'un ni l'autre. –
Fondamentalement, je cherche une fonction prédéfinie qui peut me dire si une chaîne contient des minuscules ou non. Votre point est valide et j'ai changé mon nom de fonction dans OP. – q0987