📄 string.h
字号:
rep = Sprepend(rep, &y, 1); }inline void String::prepend(const SubString& y){ rep = Sprepend(rep, y.chars(), y.length());}// misc transformationsinline void String::reverse(){ rep = Sreverse(rep, rep);}inline void String::upcase(){ rep = Supcase(rep, rep);}inline void String::downcase(){ rep = Sdowncase(rep, rep);}inline void String::capitalize(){ rep = Scapitalize(rep, rep);}// element extractioninline char& String::operator [] (int i) { if (((unsigned)i) >= length()) error("invalid index"); return rep->s[i];}inline const char& String::operator [] (int i) const{ if (((unsigned)i) >= length()) error("invalid index"); return rep->s[i];}inline char String::elem (int i) const{ if (((unsigned)i) >= length()) error("invalid index"); return rep->s[i];}inline char String::firstchar() const{ return elem(0);}inline char String::lastchar() const{ return elem(length() - 1);}// searchinginline int String::index(char c, int startpos) const{ return search(startpos, length(), c);}inline int String::index(const char* t, int startpos) const{ return search(startpos, length(), t);}inline int String::index(const String& y, int startpos) const{ return search(startpos, length(), y.chars(), y.length());}inline int String::index(const SubString& y, int startpos) const{ return search(startpos, length(), y.chars(), y.length());}inline int String::index(const Regex& r, int startpos) const{ int unused; return r.search(chars(), length(), unused, startpos);}inline int String::contains(char c) const{ return search(0, length(), c) >= 0;}inline int String::contains(const char* t) const{ return search(0, length(), t) >= 0;}inline int String::contains(const String& y) const{ return search(0, length(), y.chars(), y.length()) >= 0;}inline int String::contains(const SubString& y) const{ return search(0, length(), y.chars(), y.length()) >= 0;}inline int String::contains(char c, int p) const{ return match(p, length(), 0, &c, 1) >= 0;}inline int String::contains(const char* t, int p) const{ return match(p, length(), 0, t) >= 0;}inline int String::contains(const String& y, int p) const{ return match(p, length(), 0, y.chars(), y.length()) >= 0;}inline int String::contains(const SubString& y, int p) const{ return match(p, length(), 0, y.chars(), y.length()) >= 0;}inline int String::contains(const Regex& r) const{ int unused; return r.search(chars(), length(), unused, 0) >= 0;}inline int String::contains(const Regex& r, int p) const{ return r.match(chars(), length(), p) >= 0;}inline int String::matches(const SubString& y, int p) const{ return match(p, length(), 1, y.chars(), y.length()) >= 0;}inline int String::matches(const String& y, int p) const{ return match(p, length(), 1, y.chars(), y.length()) >= 0;}inline int String::matches(const char* t, int p) const{ return match(p, length(), 1, t) >= 0;}inline int String::matches(char c, int p) const{ return match(p, length(), 1, &c, 1) >= 0;}inline int String::matches(const Regex& r, int p) const{ int l = (p < 0)? -p : length() - p; return r.match(chars(), length(), p) == l;}inline int SubString::contains(const char* t) const{ return S.search(pos, pos+len, t) >= 0;}inline int SubString::contains(const String& y) const{ return S.search(pos, pos+len, y.chars(), y.length()) >= 0;}inline int SubString::contains(const SubString& y) const{ return S.search(pos, pos+len, y.chars(), y.length()) >= 0;}inline int SubString::contains(char c) const{ return S.search(pos, pos+len, c) >= 0;}inline int SubString::contains(const Regex& r) const{ int unused; return r.search(chars(), len, unused, 0) >= 0;}inline int SubString::matches(const Regex& r) const{ return r.match(chars(), len, 0) == len;}inline int String::gsub(const String& pat, const String& r){ return _gsub(pat.chars(), pat.length(), r.chars(), r.length());}inline int String::gsub(const SubString& pat, const String& r){ return _gsub(pat.chars(), pat.length(), r.chars(), r.length());}inline int String::gsub(const Regex& pat, const String& r){ return _gsub(pat, r.chars(), r.length());}inline int String::gsub(const char* pat, const String& r){ return _gsub(pat, -1, r.chars(), r.length());}inline int String::gsub(const char* pat, const char* r){ return _gsub(pat, -1, r, -1);}inline ostream& operator<<(ostream& s, const String& x){ s << x.chars(); return s;}// a zillion comparison operatorsinline int operator==(const String& x, const String& y) { return compare(x, y) == 0; }inline int operator!=(const String& x, const String& y){ return compare(x, y) != 0; }inline int operator>(const String& x, const String& y){ return compare(x, y) > 0; }inline int operator>=(const String& x, const String& y){ return compare(x, y) >= 0; }inline int operator<(const String& x, const String& y){ return compare(x, y) < 0; }inline int operator<=(const String& x, const String& y){ return compare(x, y) <= 0; }inline int operator==(const String& x, const SubString& y) { return compare(x, y) == 0; }inline int operator!=(const String& x, const SubString& y){ return compare(x, y) != 0; }inline int operator>(const String& x, const SubString& y) { return compare(x, y) > 0; }inline int operator>=(const String& x, const SubString& y){ return compare(x, y) >= 0; }inline int operator<(const String& x, const SubString& y) { return compare(x, y) < 0; }inline int operator<=(const String& x, const SubString& y){ return compare(x, y) <= 0; }inline int operator==(const String& x, const char* t) { return compare(x, t) == 0; }inline int operator!=(const String& x, const char* t) { return compare(x, t) != 0; }inline int operator>(const String& x, const char* t) { return compare(x, t) > 0; }inline int operator>=(const String& x, const char* t) { return compare(x, t) >= 0; }inline int operator<(const String& x, const char* t) { return compare(x, t) < 0; }inline int operator<=(const String& x, const char* t) { return compare(x, t) <= 0; }inline int operator==(const SubString& x, const String& y) { return compare(y, x) == 0; }inline int operator!=(const SubString& x, const String& y){ return compare(y, x) != 0;}inline int operator>(const SubString& x, const String& y) { return compare(y, x) < 0;}inline int operator>=(const SubString& x, const String& y) { return compare(y, x) <= 0;}inline int operator<(const SubString& x, const String& y) { return compare(y, x) > 0;}inline int operator<=(const SubString& x, const String& y) { return compare(y, x) >= 0;}inline int operator==(const SubString& x, const SubString& y) { return compare(x, y) == 0; }inline int operator!=(const SubString& x, const SubString& y){ return compare(x, y) != 0;}inline int operator>(const SubString& x, const SubString& y) { return compare(x, y) > 0;}inline int operator>=(const SubString& x, const SubString& y){ return compare(x, y) >= 0;}inline int operator<(const SubString& x, const SubString& y) { return compare(x, y) < 0;}inline int operator<=(const SubString& x, const SubString& y){ return compare(x, y) <= 0;}inline int operator==(const SubString& x, const char* t) { return compare(x, t) == 0; }inline int operator!=(const SubString& x, const char* t) { return compare(x, t) != 0;}inline int operator>(const SubString& x, const char* t) { return compare(x, t) > 0; }inline int operator>=(const SubString& x, const char* t) { return compare(x, t) >= 0; }inline int operator<(const SubString& x, const char* t) { return compare(x, t) < 0; }inline int operator<=(const SubString& x, const char* t) { return compare(x, t) <= 0; }// a helper needed by at, before, etc.inline SubString String::_substr(int first, int l){ if (first < 0 || (unsigned)(first + l) > length() ) return SubString(_nilString, 0, 0) ; else return SubString(*this, first, l);}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -