#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;
}
질문은> 나는 std::string
이 모두 대문자가 포함되어 있는지 여부를 확인하기 위해 효율적인 방법을 찾고 있어요. C++ 표준 또는 부스트 라이브러리의 표준 함수가있는 것이 가장 좋습니다.std :: string에 소문자가 포함되어 있는지 확인하십시오.
나는 두 가지 버전을 직접 구현했습니다. 그러나 나는 그들이 충분히 좋은지 확신하지 못한다. 모든 제안 및 의견은 환영합니다.
http://codereview.stackexchange.com –
하십시오 또는
, 당신은 람다를 사용할 수 있습니다 "충분히 좋은"의미를 정의하십시오. 어떤 기준에 따라 여기에서 얻은 답 중에서 "가장 좋은"대답을 선택 하시겠습니까? 소문자 (제목 요청)를 감지하는 것은 문자가 모두 대문자인지 (본문 요청과 같은지) 검색하는 것과 동일하지 않습니다. 구두점, 극동 문자, 기호 및 숫자는 대개 어느 것도 아닙니다. –
기본적으로 문자열에 소문자가 포함되어 있는지 여부를 알려주는 미리 정의 된 함수를 찾고 있습니다. 귀하의 포인트가 유효하고 OP에서 내 함수 이름을 변경했습니다. – q0987