From 63ba06713cb622d903f494a40ca5713f00b1353f Mon Sep 17 00:00:00 2001 From: sam-astro <77079540+sam-astro@users.noreply.github.com> Date: Wed, 25 May 2022 09:06:47 -0400 Subject: [PATCH] Update betweenChars function To make more efficient and allow for strings with special characters as function arguments --- ZSharp/strops.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/ZSharp/strops.cpp b/ZSharp/strops.cpp index f3ae7ad..326c352 100644 --- a/ZSharp/strops.cpp +++ b/ZSharp/strops.cpp @@ -190,20 +190,25 @@ string betweenChars(const string& str, const char& openChar, const char& closeCh { string content = ""; - int waitingForClose = 0; + int startPos = 0; + int endPos = (int)str.size(); for (int i = 0; i < (int)str.size(); i++) { - if (waitingForClose > 0 && !(str[i] == closeChar && waitingForClose == 1)) - content += str[i]; - - if (str[i] == openChar) - waitingForClose++; - else if (str[i] == closeChar) - waitingForClose--; + if (str[i] == openChar){ + startPos = i+1; + break; + } + } + for (int i = (int)str.size()-1; i >=0; i--) + { + if (str[i] == closeChar){ + endPos = i-(startPos-1); + break; + } } - return content; + return str.substr(startPos, endPos); } bool startsWith(const string& str, const string& lookFor)