aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-11-02 19:34:30 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-11-02 19:34:30 -0700
commit87a78a78dcb88d1656eda5dcbdf306fb55eba575 (patch)
tree9495fbc0a39151c5e04bfc03b791b20468ae4252
parent8a97f05d92a34589e1cf87865d0e0b5394ac05b3 (diff)
downloadvcpkg-87a78a78dcb88d1656eda5dcbdf306fb55eba575.tar.gz
vcpkg-87a78a78dcb88d1656eda5dcbdf306fb55eba575.zip
[Strings] Add join()
-rw-r--r--toolsrc/include/vcpkg_Strings.h3
-rw-r--r--toolsrc/src/vcpkg_Strings.cpp21
2 files changed, 24 insertions, 0 deletions
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 <string>
+#include <vector>
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<std::string>& 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<std::string>& 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;
+ }
}}