diff --git a/SystemTools.cxx b/SystemTools.cxx index 3f036df651..2bedcbdeb7 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -27,6 +27,7 @@ #include KWSYS_HEADER(Encoding.hxx) #include +#include #include #include #include @@ -1768,28 +1769,18 @@ char* SystemTools::AppendStrings(char const* str1, char const* str2, return newstr; } -// Return a lower case string -std::string SystemTools::LowerCase(std::string const& s) +std::string SystemTools::LowerCase(std::string s) { - std::string n; - n.resize(s.size()); - for (size_t i = 0; i < s.size(); i++) { - n[i] = static_cast( - tolower(static_cast(s[i]))); - } - return n; + std::transform(s.begin(), s.end(), s.begin(), + [](unsigned char c) { return std::tolower(c); }); + return s; } -// Return a lower case string -std::string SystemTools::UpperCase(std::string const& s) +std::string SystemTools::UpperCase(std::string s) { - std::string n; - n.resize(s.size()); - for (size_t i = 0; i < s.size(); i++) { - n[i] = static_cast( - toupper(static_cast(s[i]))); - } - return n; + std::transform(s.begin(), s.end(), s.begin(), + [](unsigned char c) { return std::toupper(c); }); + return s; } // Count char in string diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in index 214d8cdac2..796924e0e2 100644 --- a/SystemTools.hxx.in +++ b/SystemTools.hxx.in @@ -133,15 +133,11 @@ public: */ static std::string UnCapitalizedWords(std::string const&); - /** - * Return a lower case string - */ - static std::string LowerCase(std::string const&); + /** Return a lower-case string. */ + static std::string LowerCase(std::string); - /** - * Return a lower case string - */ - static std::string UpperCase(std::string const&); + /** Return an upper-case string. */ + static std::string UpperCase(std::string); /** * Count char in string