From 87a78a78dcb88d1656eda5dcbdf306fb55eba575 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Wed, 2 Nov 2016 19:34:30 -0700 Subject: [Strings] Add join() --- toolsrc/include/vcpkg_Strings.h | 3 +++ toolsrc/src/vcpkg_Strings.cpp | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) (limited to 'toolsrc') diff --git a/toolsrc/include/vcpkg_Strings.h b/toolsrc/include/vcpkg_Strings.h index 70526198c..d55a01224 100644 --- a/toolsrc/include/vcpkg_Strings.h +++ b/toolsrc/include/vcpkg_Strings.h @@ -1,6 +1,7 @@ #pragma once #include +#include namespace vcpkg {namespace Strings {namespace details { @@ -67,4 +68,6 @@ namespace vcpkg {namespace Strings std::string::const_iterator case_insensitive_ascii_find(const std::string& s, const std::string& pattern); std::string ascii_to_lowercase(const std::string& input); + + std::string join(const std::vector& v, const std::string& delimiter); }} diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp index 56eeae7a0..c53cba1fc 100644 --- a/toolsrc/src/vcpkg_Strings.cpp +++ b/toolsrc/src/vcpkg_Strings.cpp @@ -64,4 +64,25 @@ namespace vcpkg {namespace Strings std::transform(output.begin(), output.end(), output.begin(), ::tolower); return output; } + + std::string join(const std::vector& v, const std::string& delimiter) + { + if (v.empty()) + { + return std::string(); + } + + std::string output; + size_t size = v.size(); + + output.append(v.at(0)); + + for (int i = 1; i < size; ++i) + { + output.append(delimiter); + output.append(v.at(i)); + } + + return output; + } }} -- cgit v1.2.3