1 /*
2  * StringUtil.cpp
3  *
4  * Author: Anthony San Lucas
5  * Email:  sanlucas@gmail.com
6  */
7 
8 #include "StringUtil.h"
9 
10 namespace hlsutil {
11 
StringUtil()12 StringUtil::StringUtil() {}
13 
~StringUtil()14 StringUtil::~StringUtil() {}
15 
intToStr(int i)16 std::string StringUtil::intToStr(int i) {
17 	std::ostringstream result;
18 	result << i;
19 	return result.str();
20 }
21 
doubleToStr(double d)22 std::string StringUtil::doubleToStr(double d) {
23 	std::ostringstream result;
24 	result << d;
25 	return result.str();
26 }
27 
charToStr(char c)28 std::string StringUtil::charToStr(char c) {
29 	std::ostringstream result;
30 	result << c;
31 	return result.str();
32 }
33 
split(const std::string & s,char delim,std::vector<std::string> & elems)34 std::vector<std::string> &StringUtil::split(const std::string &s, char delim, std::vector<std::string> &elems) {
35     std::stringstream ss(s);
36     std::string item;
37     while(std::getline(ss, item, delim)) {
38         elems.push_back(item);
39     }
40     return elems;
41 }
42 
43 
split(const std::string & s,char delim)44 std::vector<std::string>StringUtil::split(const std::string &s, char delim) {
45     std::vector<std::string> elems;
46     return split(s, delim, elems);
47 }
48 
49 // trim from start
ltrim(std::string & s)50 std::string &StringUtil::ltrim(std::string &s) {
51         s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace))));
52         return s;
53 }
54 
55 // trim from end
rtrim(std::string & s)56 std::string &StringUtil::rtrim(std::string &s) {
57         s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end());
58         return s;
59 }
60 
61 // trim from both ends
trim(std::string & s)62 std::string &StringUtil::trim(std::string &s) {
63         return ltrim(rtrim(s));
64 }
65 
66 } /* namespace hlsutil */
67