Add strings::AsciiToLower fast function.

This commit is contained in:
vng 2012-08-23 10:24:53 +03:00 committed by Alex Zolotarev
parent 4026da0de7
commit 7cf9981c61
2 changed files with 19 additions and 0 deletions

View file

@ -104,6 +104,22 @@ UniString Normalize(UniString const & s)
return result;
}
namespace
{
char ascii_to_lower(char in)
{
static char const diff = 'Z'-'z';
if (in <= 'Z' && in >= 'A')
return (in-diff);
return in;
}
}
void AsciiToLower(string & s)
{
transform(s.begin(), s.end(), s.begin(), &ascii_to_lower);
}
bool EqualNoCase(string const & s1, string const & s2)
{
return MakeLowerCase(s1) == MakeLowerCase(s2);

View file

@ -28,8 +28,11 @@ public:
UniString MakeLowerCase(UniString const & s);
void MakeLowerCase(UniString & s);
UniString Normalize(UniString const & s);
/// For implementation @see base/normilize_unicode.cpp
void Normalize(UniString & s);
void AsciiToLower(string & s);
void MakeLowerCase(string & s);
string MakeLowerCase(string const & s);
bool EqualNoCase(string const & s1, string const & s2);