diff options
author | Perttu Ahola <celeron55@gmail.com> | 2010-11-27 01:02:21 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2010-11-27 01:02:21 +0200 |
commit | 4e249fb3fbf75f0359758760d88e22aa5b14533c (patch) | |
tree | 323087d05efbd2ace27b316d4f017cf812a31992 /src/strfnd.h | |
download | minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.gz minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.bz2 minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.zip |
Initial files
Diffstat (limited to 'src/strfnd.h')
-rw-r--r-- | src/strfnd.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/strfnd.h b/src/strfnd.h new file mode 100644 index 000000000..dbbec11a6 --- /dev/null +++ b/src/strfnd.h @@ -0,0 +1,96 @@ +#ifndef STRFND_HEADER +#define STRFND_HEADER + +#include <string> + +std::string trim(std::string str); + +class Strfnd{ + std::string tek; + unsigned int p; +public: + void start(std::string niinq){ + tek = niinq; + p=0; + } + unsigned int where(){ + return p; + } + void to(unsigned int i){ + p = i; + } + std::string what(){ + return tek; + } + std::string next(std::string plop){ + //std::cout<<"tek=\""<<tek<<"\" plop=\""<<plop<<"\""<<std::endl; + size_t n; + std::string palautus; + if (p < tek.size()) + { + //std::cout<<"\tp<tek.size()"<<std::endl; + if ((n = tek.find(plop, p)) == std::string::npos || plop == "") + { + //std::cout<<"\t\tn == string::npos || plop == \"\""<<std::endl; + n = tek.size(); + } + else + { + //std::cout<<"\t\tn != string::npos"<<std::endl; + } + palautus = tek.substr(p, n-p); + p = n + plop.length(); + } + //else + //std::cout<<"\tp>=tek.size()"<<std::endl; + //std::cout<<"palautus=\""<<palautus<<"\""<<std::endl; + return palautus; + } + bool atend(){ + if(p>=tek.size()) return true; + return false; + } + Strfnd(std::string s){ + start(s); + } +}; + +inline std::string trim(std::string str) +{ + while( + str.length()>0 + && + ( + str.substr(0, 1)==" " || + str.substr(0, 1)=="\t" || + str.substr(0, 1)=="\r" || + str.substr(0, 1)=="\n" || + str.substr(str.length()-1, 1)==" " || + str.substr(str.length()-1, 1)=="\t" || + str.substr(str.length()-1, 1)=="\r" || + str.substr(str.length()-1, 1)=="\n" + ) + ) + { + if (str.substr(0, 1)==" ") + str = str.substr(1,str.length()-1); + else if (str.substr(0, 1)=="\t") + str = str.substr(1,str.length()-1); + else if (str.substr(0, 1)=="\r") + str = str.substr(1,str.length()-1); + else if (str.substr(0, 1)=="\n") + str = str.substr(1,str.length()-1); + else if (str.substr(str.length()-1, 1)==" ") + str = str.substr(0,str.length()-1); + else if (str.substr(str.length()-1, 1)=="\t") + str = str.substr(0,str.length()-1); + else if (str.substr(str.length()-1, 1)=="\r") + str = str.substr(0,str.length()-1); + else if (str.substr(str.length()-1, 1)=="\n") + str = str.substr(0,str.length()-1); + } + return str; +} + +#endif + |