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