From 78cb2fdd106f1d3604fc9312164c4b8c7656381b Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Sat, 31 Jul 2021 11:15:07 -0700 Subject: [PATCH] ZString modifications. --- ZString.cpp | 26 ++++++++++++++++++++++---- ZString.h | 17 ++++++++++++++++- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/ZString.cpp b/ZString.cpp index 90d7b5d..5a58f75 100644 --- a/ZString.cpp +++ b/ZString.cpp @@ -8,6 +8,16 @@ namespace coreutils { return os; } + std::ostream& operator<<(std::ostream& os, const std::string& string) { + os << string; + return os; + } + + std::ostream& operator+(std::ostream& os, const ZString& zstring) { + os << zstring; + return os; + } + ZString::ZString() { data = NULL; length = 0; @@ -41,12 +51,16 @@ namespace coreutils { std::string ZString::str(int len) { return std::string(data, len); } - + + std::vector ZString::split(std::string &delimiter, size_t maxSize) { + return split(ZString(delimiter.c_str()), maxSize); + } + std::vector ZString::split(ZString delimiter, size_t maxSize) { list.clear(); if(length == 0) { - list.push_back(ZString((char *)"")); - return list; + list.push_back(ZString((char *)"")); + return list; } char *end = data + length; @@ -94,9 +108,13 @@ namespace coreutils { bool ZString::equals(ZString zstring) { if(zstring.getLength() != getLength()) - return false; + return false; return strncmp(data, zstring.getData(), getLength()) == 0; } + + bool ZString::equals(std::string string) { + return strncmp(string.c_str(), getData(), getLength()) == 0; + } bool ZString::ifNext(char *value) { bool test = (strncmp(cursor, value, strlen(value)) == 0); diff --git a/ZString.h b/ZString.h index 9576885..c87fd8d 100644 --- a/ZString.h +++ b/ZString.h @@ -61,7 +61,10 @@ namespace coreutils { /// friend std::ostream& operator<<(std::ostream& os, const ZString& zstring); - + friend std::ostream& operator<<(std::ostream& os, const std::string& string); + + friend std::ostream& operator+(std::ostream& os, const ZString& zstring); + /// /// Return a vector of ZString objects which contain the parts established /// by using the split method and passing a delimiter value. @@ -95,6 +98,12 @@ namespace coreutils { std::vector split(ZString delimiter, size_t maxSize = 0); + /// + /// + /// + + std::vector split(std::string &delimiter, size_t maxSize = 0); + /// /// Use getTokenInclude with a list of character to allow the forwarding /// of the cursor through the data until a character that is not in the @@ -133,6 +142,12 @@ namespace coreutils { bool equals(ZString zstring); + /// + /// + /// + + bool equals(std::string string); + /// /// Advance the cursor the length of the provided value if the value at /// the cursor position is equal to the value provided.