From b05970c50f6482710ca1128005bb893114bb347b Mon Sep 17 00:00:00 2001 From: Lev Date: Sat, 22 May 2021 22:36:00 -0500 Subject: [PATCH] Add used the tokenise function on string objects --- .../Topic 3/3.1.5/a.exe | Bin 0 -> 113325 bytes .../Topic 3/3.1.5/test.cpp | 70 ++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 CM2005 Object Oriented Programming/Topic 3/3.1.5/a.exe create mode 100644 CM2005 Object Oriented Programming/Topic 3/3.1.5/test.cpp diff --git a/CM2005 Object Oriented Programming/Topic 3/3.1.5/a.exe b/CM2005 Object Oriented Programming/Topic 3/3.1.5/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..cec8cb4a67696b5135c8a614d2b94344c01f9cc7 GIT binary patch literal 113325 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 V`r( +#include +#include + +std::vector Tokenise(std::string csvLine, char separator) +{ + std::vector tokens; + signed int start, end; + std::string token; + start = csvLine.find_first_not_of(separator, 0); + do + { + end = csvLine.find_first_of(separator, start); + if(start == csvLine.length() || start == end) break; + if(end >= 0) + token = csvLine.substr(start, end - start); + else + token = csvLine.substr(start, csvLine.length() - start); + + tokens.push_back(token); + start = end + 1; + } while (end > 0); + return tokens; +} + +int main() +{ + std::vector tokens6; + std::vector tokens3; + std::vector tokens1; + std::vector tokens0; + std::vector tokensA; + std::string s6 = "thing0,thing1,thing2,thing3,thing4,thing5,thing6"; + std::string s3 = "thing0,thing1,thing2,thing3,thing4,thing5,thing6"; + std::string s1 = "thing0,thing1,thing2,thing3,thing4,thing5,thing6"; + std::string s0 = ""; + std::string sA = "2020/03/17 17:01:24.884492,ETH/BTC,bid,0.02187308,7.44564869"; + + tokens6 = Tokenise(s6, ','); + tokens3 = Tokenise(s3, ','); + tokens1 = Tokenise(s1, ','); + tokens0 = Tokenise(s0, ','); + tokensA = Tokenise(sA, ','); + std::cout << "6 tokens" << std::endl; + for(std::string& token : tokens6) + { + std::cout << token << std::endl; + } + std::cout << "3 tokens" << std::endl; + for(std::string& token : tokens3) + { + std::cout << token << std::endl; + } + std::cout << "1 token" << std::endl; + for(std::string& token : tokens1) + { + std::cout << token << std::endl; + } + std::cout << "0 tokens" << std::endl; + for(std::string& token : tokens0) + { + std::cout << token << std::endl; + } + std::cout << "Entry tokens" << std::endl; + for(std::string& token : tokensA) + { + std::cout << token << std::endl; + } + return 0; +} \ No newline at end of file