zutil-cpp/util.cpp

48 lines
885 B
C++

#include "util.h"
void zutil::tolower(string &s){
for(size_t i=0; s[i] ;++i){
s[i] = std::tolower(s[i]);
}
}
void zutil::trim(string &str){
size_t s = str.find_first_not_of(" \n\r\t");
size_t e = str.find_last_not_of (" \n\r\t");
if( string::npos != s && string::npos != e)
str = str.substr(s, e-s+1);
}
vector<string> zutil::parseLine(istream &in, char separator, char endl){
vector<string> parsed;
string line;
getline(in, line, endl);
return split( line, separator );
}
vector<string> zutil::split(const string &line, char separator){
vector<string> parsed;
string tmp;
for(size_t i=0; i<line.length() ;++i){
if(line[i] == separator && !tmp.empty()){
parsed.push_back( tmp );
tmp = "";
}
else{
tmp += line[i];
}
}
if(!tmp.empty()){
parsed.push_back( tmp );
}
return parsed;
}