string_utils.h
#ifndef KU_STRING_UTILS_H
#define KU_STRING_UTILS_H
#include <string>
class StringUtils {
public:
const static char *WHITESPACE;
static std::string Trim(const std::string &s, const char *t = WHITESPACE);
static std::string TrimLeft(const std::string &s, const char *t = WHITESPACE);
static std::string TrimRight(const std::string &s, const char *t = WHITESPACE);
};
#endif //KU_STRING_UTILS_H
string_utils.cpp
#include "string_utils.h"
const char * StringUtils::WHITESPACE = " \n\r\t";
std::string StringUtils::Trim(const std::string &s, const char *t) {
return TrimRight(TrimLeft(s, t), t);
}
std::string StringUtils::TrimLeft(const std::string &s, const char *t) {
size_t startpos = s.find_first_not_of(t);
return (startpos == std::string::npos) ? "" : s.substr(startpos);
}
std::string StringUtils::TrimRight(const std::string &s, const char *t) {
size_t endpos = s.find_last_not_of(t);
return (endpos == std::string::npos) ? "" : s.substr(0, endpos + 1);
}