diff --git a/source/StringUtils.cpp b/source/StringUtils.cpp index f3450f620..0143bb8c4 100644 --- a/source/StringUtils.cpp +++ b/source/StringUtils.cpp @@ -106,7 +106,7 @@ AStringVector StringSplit(const AString & str, const AString & delim) while ((cutAt = str.find_first_of(delim, Prev)) != str.npos) { results.push_back(str.substr(Prev, cutAt - Prev)); - Prev = cutAt + delim.length(); + Prev = cutAt + 1; } if (Prev < str.length()) { @@ -118,6 +118,7 @@ AStringVector StringSplit(const AString & str, const AString & delim) + AStringVector StringSplitAndTrim(const AString & str, const AString & delim) { AStringVector results; @@ -126,7 +127,7 @@ AStringVector StringSplitAndTrim(const AString & str, const AString & delim) while ((cutAt = str.find_first_of(delim, Prev)) != str.npos) { results.push_back(TrimString(str.substr(Prev, cutAt - Prev))); - Prev = cutAt + delim.length(); + Prev = cutAt + 1; } if (Prev < str.length()) { diff --git a/source/StringUtils.h b/source/StringUtils.h index 06bf77035..995ecab1f 100644 --- a/source/StringUtils.h +++ b/source/StringUtils.h @@ -33,10 +33,10 @@ extern AString Printf(const char * format, ...); /// Add the formatted string to the existing data in the string extern AString & AppendPrintf (AString & str, const char * format, ...); -/// Split the string at delimiters, return as a stringvector +/// Split the string at any of the listed delimiters, return as a stringvector extern AStringVector StringSplit(const AString & str, const AString & delim); -/// Split the string at delimiters and trim each value, return as a stringvector +/// Split the string at any of the listed delimiters and trim each value, return as a stringvector extern AStringVector StringSplitAndTrim(const AString & str, const AString & delim); /// Trime whitespace at both ends of the string