====== Trim ======
Führende Leerzeichen entfernen:
zuTrimmendeString.erase(0, zuTrimmendeString.find_first_not_of(" "));
Leerzeichen am Ende entfernen:
zuTrimmendeString.erase(zuTrimmendeString.find_last_not_of(" ") + 1);
Auf beiden Seiten:
posBegin = zuTrimmendeString.find_first_not_of(" ");
posEnd = zuTrimmendeString.find_last_not_of(" ");
zuTrimmendeString = zuTrimmendeString.substr(posBegin, posEnd - posBegin + 1);
Oder als Klasse mit statischen Methoden (hier nur ein Ausschnitt):
class stringutils
{
private:
static const char* const WHITESPACE;
static const char* const EMPTY;
public:
static const string::size_type npos;
public:
static string trim (const string& s, const char* trimChars = nullptr);
static string trim_left (const string& s, const char* trimChars = nullptr);
static string trim_right(const string& s, const char* trimChars = nullptr);
};
const char* const stringutils::WHITESPACE = " \n\r\t";
const char* const stringutils::EMPTY = "";
const string::size_type stringutils::npos = string::npos;
inline string stringutils::trim_left(const string& s, const char* trimChars)
{
size_t startpos = s.find_first_not_of(trimChars ? trimChars : WHITESPACE);
return (startpos == string::npos) ? EMPTY : ((startpos == 0) ? s : s.substr(startpos));
}
inline string stringutils::trim_right(const string& s, const char* trimChars)
{
size_t endpos = s.find_last_not_of(trimChars ? trimChars : WHITESPACE);
return (endpos == string::npos) ? EMPTY : ((endpos == s.length() - 1) ? s : s.substr(0, endpos + 1));
}
inline string stringutils::trim(const string& s, const char* trimChars)
{
size_t startpos = s.find_first_not_of(trimChars ? trimChars : WHITESPACE);
if (startpos == string::npos) return EMPTY;
size_t endpos = s.find_last_not_of(trimChars ? trimChars : WHITESPACE);
if ((startpos == 0) && (endpos == s.length() - 1)) return s;
return s.substr(startpos, endpos - startpos + 1);
}
In der **[[http://www.boost.org/|Boost]]**-Library ist diese Funktionalität bereits enthalten.
----
Stand: 02.06.2015\\
--- //[[feedback.jk-wiki@kreick.de|: Jürgen Kreick]]//
EOF