diff options
author | vng <viktor.govako@gmail.com> | 2012-08-23 11:24:53 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:42:26 +0300 |
commit | 7cf9981c61381384b9668c592e5072382f70f24d (patch) | |
tree | 833f9876c428ab2f94c1386f030640fd09e792d0 /base | |
parent | 4026da0de7d7e43d855ff7ffcc9cd0cfb9955001 (diff) |
Add strings::AsciiToLower fast function.
Diffstat (limited to 'base')
-rw-r--r-- | base/string_utils.cpp | 16 | ||||
-rw-r--r-- | base/string_utils.hpp | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/base/string_utils.cpp b/base/string_utils.cpp index edc2e57d6a..41862ae82a 100644 --- a/base/string_utils.cpp +++ b/base/string_utils.cpp @@ -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); diff --git a/base/string_utils.hpp b/base/string_utils.hpp index c58228110a..7268b8b0c6 100644 --- a/base/string_utils.hpp +++ b/base/string_utils.hpp @@ -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); |