47 #ifndef MUI_LINALG_UTIL_H_
48 #define MUI_LINALG_UTIL_H_
59 inline std::string
ltrim(
const std::string &s) {
60 const std::string WHITESPACE =
" \n\r\t\f\v";
61 std::string::size_type start = s.find_first_not_of(WHITESPACE);
62 return (start == std::string::npos) ?
"" : s.substr(start);
66 inline std::string
rtrim(
const std::string &s) {
67 const std::string WHITESPACE =
" \n\r\t\f\v";
68 std::string::size_type end = s.find_last_not_of(WHITESPACE);
69 return (end == std::string::npos) ?
"" : s.substr(0, end + 1);
73 inline std::string
trim(
const std::string &s) {
80 std::transform(s.begin(), s.end(), std::back_inserter(lower), [](
unsigned char c){ return std::tolower(c); });
87 std::transform(s.begin(), s.end(), std::back_inserter(upper), [](
unsigned char c){ return std::toupper(c); });
std::string string_to_lower(const std::string &s)
Definition: linalg_util.h:78
std::string trim(const std::string &s)
Definition: linalg_util.h:73
std::string rtrim(const std::string &s)
Definition: linalg_util.h:66
std::string ltrim(const std::string &s)
Definition: linalg_util.h:59
std::string string_to_upper(const std::string &s)
Definition: linalg_util.h:85