diff --git a/include/tools/stringTools.h b/include/tools/stringTools.h index f106d7893..bfb073c27 100644 --- a/include/tools/stringTools.h +++ b/include/tools/stringTools.h @@ -47,6 +47,7 @@ std::vector split(const std::string&, const std::string&); std::vector split(const char*, const char*); std::vector split(const std::string&, const char*); std::vector split(const char*, const std::string&); +std::string join(const std::vector& list, const std::string& sep); std::string ucAll(const std::string& word); std::string lcAll(const std::string& word); diff --git a/src/tools/stringTools.cpp b/src/tools/stringTools.cpp index c1025b522..f3d206e41 100644 --- a/src/tools/stringTools.cpp +++ b/src/tools/stringTools.cpp @@ -298,6 +298,21 @@ std::vector kiwix::split(const std::string& lhs, const char* rhs) return split(lhs.c_str(), rhs); } +std::string kiwix::join(const std::vector& list, const std::string& sep) +{ + std::stringstream ss; + bool first = true; + for (auto& s:list) { + if (first) { + ss << sep; + first = false; + } + ss << s; + } + return ss.str(); +} + + std::string kiwix::ucFirst(const std::string& word) { if (word.empty()) {