diff --git a/src/common/utils/string.cpp b/src/common/utils/string.cpp index 80e4610..b263025 100644 --- a/src/common/utils/string.cpp +++ b/src/common/utils/string.cpp @@ -31,20 +31,24 @@ std::vector split(const std::string& s, const char delim) { return elems; } -std::string to_lower(std::string text) { - std::transform(text.begin(), text.end(), text.begin(), [](const char input) { - return static_cast(tolower(input)); - }); +std::string to_lower(const std::string text) { + std::string result; + std::ranges::transform(text, std::back_inserter(result), + [](const unsigned char input) { + return static_cast(std::tolower(input)); + }); return text; } -std::string to_upper(std::string text) { - std::transform(text.begin(), text.end(), text.begin(), [](const char input) { - return static_cast(toupper(input)); - }); +std::string to_upper(const std::string text) { + std::string result; + std::ranges::transform(text, std::back_inserter(result), + [](const unsigned char input) { + return static_cast(std::toupper(input)); + }); - return text; + return result; } bool starts_with(const std::string& text, const std::string& substring) { diff --git a/src/common/utils/string.hpp b/src/common/utils/string.hpp index 00426c3..a3de846 100644 --- a/src/common/utils/string.hpp +++ b/src/common/utils/string.hpp @@ -76,8 +76,8 @@ const char* va(const char* fmt, ...); std::vector split(const std::string& s, char delim); -std::string to_lower(std::string text); -std::string to_upper(std::string text); +std::string to_lower(const std::string& text); +std::string to_upper(const std::string& text); bool starts_with(const std::string& text, const std::string& substring); bool ends_with(const std::string& text, const std::string& substring);