diff --git a/src/common/utils/string.cpp b/src/common/utils/string.cpp index b3d5119..d91a210 100644 --- a/src/common/utils/string.cpp +++ b/src/common/utils/string.cpp @@ -30,22 +30,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(), - [](unsigned char input) { - return static_cast(std::tolower(input)); - }); +std::string to_lower(const std::string& text) { + std::string result; + std::ranges::transform(text, std::back_inserter(result), + [](unsigned char input) { + return static_cast(std::tolower(input)); + }); - return text; + return result; } -std::string to_upper(std::string text) { - std::transform(text.begin(), text.end(), text.begin(), - [](unsigned char input) { - return static_cast(std::toupper(input)); - }); +std::string to_upper(const std::string& text) { + std::string result; + std::ranges::transform(text, std::back_inserter(result), + [](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 eb78028..b05f91a 100644 --- a/src/common/utils/string.hpp +++ b/src/common/utils/string.hpp @@ -76,8 +76,9 @@ 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);