From 5e02c71b1dca67f79bc21eb889f09ab75af92af6 Mon Sep 17 00:00:00 2001 From: sam-astro <77079540+sam-astro@users.noreply.github.com> Date: Mon, 23 May 2022 09:20:24 -0400 Subject: [PATCH] Add function to better process function args and such --- ZSharp/strops.cpp | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/ZSharp/strops.cpp b/ZSharp/strops.cpp index a807b36..9691ee3 100644 --- a/ZSharp/strops.cpp +++ b/ZSharp/strops.cpp @@ -150,6 +150,32 @@ int countNoOverlap(const string& str, const char& searchFor, const char& ch1, co return cnt; } +vector splitNoOverlap(const string& str, const char& splitBy, const char& openChar, const char& closeChar) +{ + vector newStr; + + int openCount = 0; + + string tmpStr = ""; + for (int i = 0; i < (int)str.size(); i++) + { + if (str[i] == splitBy && openCount == 0) + { + newStr.push_back(tmpStr); + tmpStr = ""; + continue; + } + else if (str[i] == openChar) + openCount += 1; + else if (str[i] == closeChar) + openCount -= 1; + else + tmpStr += str[i]; + } + + return newStr; +} + string betweenChars(const string& str, const char& openChar, const char& closeChar) { string content = ""; @@ -384,4 +410,4 @@ bool isEscaped(const string& str, int curChar) return true; return false; -} \ No newline at end of file +}