diff --git a/include/commoncpp/utils.hpp b/include/commoncpp/utils.hpp index 01c7375..d8fc675 100644 --- a/include/commoncpp/utils.hpp +++ b/include/commoncpp/utils.hpp @@ -14,6 +14,7 @@ namespace utils { std::vector str_split(std::string_view s, char delimiter, size_t times = -1); #endif std::pair str_split_once(std::string_view s, std::string_view delim); +std::pair str_split_once(std::string_view s, char delim); bool str_replace_in_place(std::string& subject, std::string_view search, const std::string& replace); std::string_view max_words(std::string_view text, unsigned count); bool contains(std::string_view value, std::string_view other); diff --git a/utils.cpp b/utils.cpp index 65cd09b..22e11c8 100644 --- a/utils.cpp +++ b/utils.cpp @@ -34,6 +34,15 @@ std::pair str_split_once(std::string_view s, // Split there return {s.substr(0, pos), s.substr(pos+delim.size(), s.size()-1)}; } +std::pair str_split_once(std::string_view s, char delim) { + // Find the delimiter + auto pos = s.find(delim); + if (pos == s.npos) { + return {s, ""}; + } + // Split there + return {s.substr(0, pos), s.substr(pos+1, s.size()-1)}; +} bool str_replace_in_place(std::string& subject, std::string_view search, const std::string& replace) { @@ -110,6 +119,7 @@ std::string read_text_file(const std::string& path) { sstr << in.rdbuf(); return sstr.str(); } + #endif } }