SuperString join()
authorArjen Baart <arjen@andromeda.nl>
Thu, 18 Jun 2020 19:02:00 +0000 (21:02 +0200)
committerArjen Baart <arjen@andromeda.nl>
Thu, 18 Jun 2020 19:02:00 +0000 (21:02 +0200)
src/String.h
src/superstring.cpp
test/string_split_join.cpp
test/string_split_join.exp [new file with mode: 0644]

index bd66c53..2aac0d0 100644 (file)
@@ -485,6 +485,7 @@ public:
       return x._ss > y._ss;
    }
 
+   String join(const String &separator);
 };
 
 #endif  /* STRING_H */
index b71fd5f..c2d6696 100644 (file)
@@ -62,3 +62,19 @@ SuperString& SuperString::operator+=(const String& x)
 
    return *this;
 }
+
+String SuperString::join(const String &separator)
+{
+   String joined;
+
+   if (_ss.size() != 0)
+   {
+      joined = _ss[0];
+      for (int i = 1; i < _ss.size(); i++)
+      {
+         joined += separator + _ss[i];
+      }
+   }
+
+   return joined;
+}
index 63aa7d9..361dd3c 100644 (file)
@@ -37,6 +37,12 @@ int main()
    assert(ss0[2] == "To");
    assert(ss0[3] == "Split");
 
+   String s1;
+
+   s1 = ss0.join(" ");
+   std::cout << "Joined with ' ': " << s1 << "\n";
+   assert(s1 == "The String To Split");
+
    return 0;
 }
 
diff --git a/test/string_split_join.exp b/test/string_split_join.exp
new file mode 100644 (file)
index 0000000..0f1205d
--- /dev/null
@@ -0,0 +1,4 @@
+The string The_String_To_Split split on "_":
+["The","String","To","Split"]
+Joined with ' ': The String To Split
+PASS string_split_join (exit status: 0)