diff --git a/src/text.cpp b/src/text.cpp index 27e20da..5673a10 100644 --- a/src/text.cpp +++ b/src/text.cpp @@ -179,6 +179,24 @@ void split ( results.push_back (input.substr (start)); } +//////////////////////////////////////////////////////////////////////////////// +void join ( + std::string& result, + const std::string& separator, + const std::vector& items) +{ + std::stringstream s; + unsigned int size = items.size (); + for (unsigned int i = 0; i < size; ++i) + { + s << items[i]; + if (i < size - 1) + s << separator; + } + + result = s.str (); +} + //////////////////////////////////////////////////////////////////////////////// std::string trimLeft (const std::string& in, const std::string& t /*= " "*/) { diff --git a/src/text.h b/src/text.h index 6be2edb..caca1d9 100644 --- a/src/text.h +++ b/src/text.h @@ -36,6 +36,7 @@ std::string trimRight (const std::string& in, const std::string& t = " "); std::string trim (const std::string& in, const std::string& t = " "); bool extractLine (std::string&, const std::string&, int, bool, unsigned int&); void split (std::vector&, const std::string&, const char); +void join (std::string&, const std::string&, const std::vector&); std::string lowerCase (const std::string&); bool compare (const std::string&, const std::string&, bool sensitive = true); bool closeEnough (const std::string&, const std::string&, unsigned int minLength = 0);