summaryrefslogtreecommitdiffstats
path: root/Src
diff options
context:
space:
mode:
Diffstat (limited to 'Src')
-rw-r--r--Src/StringTools.cpp28
-rw-r--r--Src/StringTools.h34
2 files changed, 47 insertions, 15 deletions
diff --git a/Src/StringTools.cpp b/Src/StringTools.cpp
index 931bd75..302fad9 100644
--- a/Src/StringTools.cpp
+++ b/Src/StringTools.cpp
@@ -92,3 +92,31 @@ std::string StringTools::Upper(const std::string& str) {
return ss.str();
}
+
+std::vector<std::string> StringTools::Split(const std::string& str, const std::string& seperator) {
+ std::vector<std::string> toRet;
+
+ // Quick-accept: seperator length is 0
+ if (seperator.length() == 0) {
+ for (const char c : str)
+ toRet.push_back(std::string(&c, (&c) + 1));
+ }
+
+ else {
+ std::size_t idx = 0;
+ while (idx != std::string::npos) {
+ std::size_t lastIdx = idx;
+ idx = str.find(seperator, idx + seperator.length());
+
+ toRet.push_back(str.substr(
+ lastIdx,
+ idx - lastIdx
+ ));
+
+ if (idx != std::string::npos)
+ idx += seperator.length();
+ }
+ }
+
+ return toRet;
+}
diff --git a/Src/StringTools.h b/Src/StringTools.h
index 0c08805..d65772a 100644
--- a/Src/StringTools.h
+++ b/Src/StringTools.h
@@ -2,32 +2,36 @@
#define STRINGTOOLS_STRINGTOOLS_H
#include <string>
+#include <vector>
/* Handy utensils to manipulate strings */
class StringTools
{
public:
- //! Will replace every occurence of `find` in `str` by `subst`.
- static std::string Replace(const std::string& str, const char find, const std::string& subst);
+ //! Will replace every occurence of `find` in `str` by `subst`.
+ static std::string Replace(const std::string& str, const char find, const std::string& subst);
- //! Will replace every occurence of `find` in `str` by `subst`.
- static std::string Replace(const std::string& str, const std::string& find, const std::string& subst);
-
- //! Will replace every occurence of `find` in `str` by `subst`.
- static std::string Replace(const std::string& str, const char find, const char subst);
+ //! Will replace every occurence of `find` in `str` by `subst`.
+ static std::string Replace(const std::string& str, const std::string& find, const std::string& subst);
- //! Will replace every occurence of `find` in `str` by `subst`.
- static std::string Replace(const std::string& str, const std::string& find, const char subst);
+ //! Will replace every occurence of `find` in `str` by `subst`.
+ static std::string Replace(const std::string& str, const char find, const char subst);
- //! Will make a string all-lowercase.
- static std::string Lower(const std::string& str);
+ //! Will replace every occurence of `find` in `str` by `subst`.
+ static std::string Replace(const std::string& str, const std::string& find, const char subst);
- //! Will make a string all-uppercase.
- static std::string Upper(const std::string& str);
+ //! Will make a string all-lowercase.
+ static std::string Lower(const std::string& str);
+
+ //! Will make a string all-uppercase.
+ static std::string Upper(const std::string& str);
+
+ //! Will split a string by a string seperator
+ static std::vector<std::string> Split(const std::string& str, const std::string& seperator);
private:
- // No instanciation! >:(
- StringTools();
+ // No instanciation! >:(
+ StringTools();
};
#endif //STRINGTOOLS_STRINGTOOLS_H