Program Listing for File StringUtil.cpp¶
↰ Return to documentation for file (components/Util/src/StringUtil.cpp
)
#include "StringUtil.h"
#include <cstdint>
#include <cctype>
#include <algorithm>
#include <sstream>
namespace util {
std::vector<std::string> split(std::string source, char delimiter)
{
// See also: https://stackoverflow.com/questions/5167625/splitting-a-c-stdstring-using-tokens-e-g
std::vector<std::string> strings;
std::istringstream iss(source);
std::string s;
while (std::getline(iss, s, delimiter)) {
strings.push_back(trim(s));
}
return strings;
}
std::string toLower(std::string& value)
{
std::transform(value.begin(), value.end(), value.begin(),
[](unsigned char c) -> unsigned char {
return std::tolower(c);
});
return value;
}
std::string trim(const std::string& str)
{
std::size_t first = str.find_first_not_of(' ');
if (std::string::npos == first) return str;
std::size_t last = str.find_last_not_of(' ');
return str.substr(first, (last - first + 1));
}
} // namespace util