2011-10-02 10:05:45 +00:00
|
|
|
#ifdef NALL_STRING_INTERNAL_HPP
|
2010-10-14 10:07:38 +00:00
|
|
|
|
|
|
|
namespace nall {
|
|
|
|
|
|
|
|
unsigned string::length() const { return strlen(data); }
|
2011-12-12 10:59:53 +00:00
|
|
|
unsigned string::capacity() const { return size; }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
template<unsigned limit> lstring string::split(const char* key) const { lstring result; result.split<limit>(key, data); return result; }
|
|
|
|
template<unsigned limit> lstring string::isplit(const char* key) const { lstring result; result.isplit<limit>(key, data); return result; }
|
|
|
|
template<unsigned limit> lstring string::qsplit(const char* key) const { lstring result; result.qsplit<limit>(key, data); return result; }
|
|
|
|
template<unsigned limit> lstring string::iqsplit(const char* key) const { lstring result; result.iqsplit<limit>(key, data); return result; }
|
2011-10-16 09:44:48 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
bool string::equals(const char* str) const { return !strcmp(data, str); }
|
|
|
|
bool string::iequals(const char* str) const { return !istrcmp(data, str); }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
bool string::wildcard(const char* str) const { return nall::wildcard(data, str); }
|
|
|
|
bool string::iwildcard(const char* str) const { return nall::iwildcard(data, str); }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
bool string::beginswith(const char* str) const { return strbegin(data, str); }
|
|
|
|
bool string::ibeginswith(const char* str) const { return istrbegin(data, str); }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
bool string::endswith(const char* str) const { return strend(data, str); }
|
|
|
|
bool string::iendswith(const char* str) const { return istrend(data, str); }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
|
|
|
string& string::lower() { nall::strlower(data); return *this; }
|
|
|
|
string& string::upper() { nall::strupper(data); return *this; }
|
2011-07-07 12:59:26 +00:00
|
|
|
string& string::qlower() { nall::qstrlower(data); return *this; }
|
|
|
|
string& string::qupper() { nall::qstrupper(data); return *this; }
|
2013-05-02 11:25:45 +00:00
|
|
|
string& string::transform(const char* before, const char* after) { nall::strtr(data, before, after); return *this; }
|
2013-01-21 12:27:15 +00:00
|
|
|
string& string::reverse() {
|
|
|
|
unsigned length = strlen(data), pivot = length >> 1;
|
|
|
|
for(signed x = 0, y = length - 1; x < pivot && y >= 0; x++, y--) std::swap(data[x], data[y]);
|
|
|
|
return *this;
|
|
|
|
}
|
2010-10-14 10:07:38 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
template<unsigned limit> string& string::ltrim(const char* key) { nall::ltrim<limit>(data, key); return *this; }
|
|
|
|
template<unsigned limit> string& string::rtrim(const char* key) { nall::rtrim<limit>(data, key); return *this; }
|
|
|
|
template<unsigned limit> string& string::trim(const char* key, const char* rkey) { nall::trim <limit>(data, key, rkey); return *this; }
|
2012-10-22 22:45:18 +00:00
|
|
|
string& string::strip() { nall::strip(data); return *this; }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
2013-05-02 11:25:45 +00:00
|
|
|
optional<unsigned> string::position(const char* key) const { return strpos(data, key); }
|
|
|
|
optional<unsigned> string::iposition(const char* key) const { return istrpos(data, key); }
|
|
|
|
optional<unsigned> string::qposition(const char* key) const { return qstrpos(data, key); }
|
|
|
|
optional<unsigned> string::iqposition(const char* key) const { return iqstrpos(data, key); }
|
2010-10-14 10:07:38 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|