Test

Dependencies:   X_NUCLEO_IHM01A1

Revision:
3:24ab1c8fefef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tokenizer.h	Sun Dec 29 18:36:23 2019 +0000
@@ -0,0 +1,56 @@
+///////////////////////////////////////////////////////////////////////////////
+// Tokenizer.h
+// ===========
+// General purpose string tokenizer (C++ string version)
+//
+// The default delimiters are space(" "), tab(\t, \v), newline(\n),
+// carriage return(\r), and form feed(\f).
+// If you want to use different delimiters, then use setDelimiter() to override
+// the delimiters. Note that the delimiter string can hold multiple characters.
+//
+//  AUTHOR: Song Ho Ahn (song.ahn@gmail.com)
+// CREATED: 2005-05-25
+// UPDATED: 2011-03-08
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef TOKENIZER_H
+#define TOKENIZER_H
+
+#include <string>
+#include <vector>
+
+// default delimiter string (space, tab, newline, carriage return, form feed)
+const std::string DEFAULT_DELIMITER = " \t\v\n\r\f";
+
+class Tokenizer
+{
+public:
+    // ctor/dtor
+    Tokenizer();
+    Tokenizer(const std::string& str, const std::string& delimiter=DEFAULT_DELIMITER);
+    ~Tokenizer();
+
+    // set string and delimiter
+    void set(const std::string& str, const std::string& delimiter=DEFAULT_DELIMITER);
+    void setString(const std::string& str);             // set source string only
+    void setDelimiter(const std::string& delimiter);    // set delimiter string only
+
+    std::string next();                                 // return the next token, return "" if it ends
+
+    std::vector<std::string> split();                   // return array of tokens from current cursor
+
+protected:
+
+
+private:
+    void skipDelimiter();                               // ignore leading delimiters
+    bool isDelimiter(char c);                           // check if the current char is delimiter
+
+    std::string buffer;                                 // input string
+    std::string token;                                  // output string
+    std::string delimiter;                              // delimiter string
+    std::string::const_iterator currPos;                // string iterator pointing the current position
+
+};
+
+#endif // TOKENIZER_H