📄 string.h
字号:
inline SubString::SubString(String& x, int first, int l) :S(x), pos(first), len(l) {}inline SubString::~SubString() {}// assignmentinline String& String::operator = (const String& y){ rep = Scopy(rep, y.rep); return *this;}inline String& String::operator=(const char* t){ rep = Salloc(rep, t, -1, -1); return *this;}inline String& String::operator=(const SubString& y){ rep = Salloc(rep, y.chars(), y.length(), y.length()); return *this;}inline String& String::operator=(char c){ rep = Salloc(rep, &c, 1, 1); return *this;}inline SubString& SubString::operator = (const char* ys){ assign(0, ys); return *this;}inline SubString& SubString::operator = (char ch){ assign(0, &ch, 1); return *this;}inline SubString& SubString::operator = (const String& y){ assign(y.rep, y.chars(), y.length()); return *this;}inline SubString& SubString::operator = (const SubString& y){ assign(y.S.rep, y.chars(), y.length()); return *this;}// Zillions of cats...inline void cat(const String& x, const String& y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const String& x, const SubString& y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const String& x, const char* y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), y, -1);}inline void cat(const String& x, char y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1);}inline void cat(const SubString& x, const String& y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const SubString& x, const SubString& y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const SubString& x, const char* y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), y, -1);}inline void cat(const SubString& x, char y, String& r){ r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1);}inline void cat(const char* x, const String& y, String& r){ r.rep = Scat(r.rep, x, -1, y.chars(), y.length());}inline void cat(const char* x, const SubString& y, String& r){ r.rep = Scat(r.rep, x, -1, y.chars(), y.length());}inline void cat(const char* x, const char* y, String& r){ r.rep = Scat(r.rep, x, -1, y, -1);}inline void cat(const char* x, char y, String& r){ r.rep = Scat(r.rep, x, -1, &y, 1);}inline void cat(const String& a, const String& x, const String& y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());}inline void cat(const String& a, const String& x, const SubString& y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());}inline void cat(const String& a, const String& x, const char* y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1);}inline void cat(const String& a, const String& x, char y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1);}inline void cat(const String& a, const SubString& x, const String& y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());}inline void cat(const String& a, const SubString& x, const SubString& y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length());}inline void cat(const String& a, const SubString& x, const char* y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1);}inline void cat(const String& a, const SubString& x, char y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1);}inline void cat(const String& a, const char* x, const String& y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length());}inline void cat(const String& a, const char* x, const SubString& y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length());}inline void cat(const String& a, const char* x, const char* y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y, -1);}inline void cat(const String& a, const char* x, char y, String& r){ r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, &y, 1);}inline void cat(const char* a, const String& x, const String& y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const char* a, const String& x, const SubString& y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const char* a, const String& x, const char* y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1);}inline void cat(const char* a, const String& x, char y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1);}inline void cat(const char* a, const SubString& x, const String& y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const char* a, const SubString& x, const SubString& y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length());}inline void cat(const char* a, const SubString& x, const char* y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1);}inline void cat(const char* a, const SubString& x, char y, String& r){ r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1);}inline void cat(const char* a, const char* x, const String& y, String& r){ r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length());}inline void cat(const char* a, const char* x, const SubString& y, String& r){ r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length());}inline void cat(const char* a, const char* x, const char* y, String& r){ r.rep = Scat(r.rep, a, -1, x, -1, y, -1);}inline void cat(const char* a, const char* x, char y, String& r){ r.rep = Scat(r.rep, a, -1, x, -1, &y, 1);}// operator versionsinline String& String::operator +=(const String& y){ cat(*this, y, *this); return *this;}inline String& String::operator +=(const SubString& y){ cat(*this, y, *this); return *this;}inline String& String::operator += (const char* y){ cat(*this, y, *this); return *this;}inline String& String:: operator +=(char y){ cat(*this, y, *this); return *this;}// constructive concatenation#if defined(__GNUG__) && !defined(_G_NO_NRV)inline String operator + (const String& x, const String& y) return r;{ cat(x, y, r);}inline String operator + (const String& x, const SubString& y) return r;{ cat(x, y, r);}inline String operator + (const String& x, const char* y) return r;{ cat(x, y, r);}inline String operator + (const String& x, char y) return r;{ cat(x, y, r);}inline String operator + (const SubString& x, const String& y) return r;{ cat(x, y, r);}inline String operator + (const SubString& x, const SubString& y) return r;{ cat(x, y, r);}inline String operator + (const SubString& x, const char* y) return r;{ cat(x, y, r);}inline String operator + (const SubString& x, char y) return r;{ cat(x, y, r);}inline String operator + (const char* x, const String& y) return r;{ cat(x, y, r);}inline String operator + (const char* x, const SubString& y) return r;{ cat(x, y, r);}inline String reverse(const String& x) return r;{ r.rep = Sreverse(x.rep, r.rep);}inline String upcase(const String& x) return r;{ r.rep = Supcase(x.rep, r.rep);}inline String downcase(const String& x) return r;{ r.rep = Sdowncase(x.rep, r.rep);}inline String capitalize(const String& x) return r;{ r.rep = Scapitalize(x.rep, r.rep);}#else /* NO_NRV */inline String operator + (const String& x, const String& y){ String r; cat(x, y, r); return r;}inline String operator + (const String& x, const SubString& y) { String r; cat(x, y, r); return r;}inline String operator + (const String& x, const char* y) { String r; cat(x, y, r); return r;}inline String operator + (const String& x, char y) { String r; cat(x, y, r); return r;}inline String operator + (const SubString& x, const String& y) { String r; cat(x, y, r); return r;}inline String operator + (const SubString& x, const SubString& y) { String r; cat(x, y, r); return r;}inline String operator + (const SubString& x, const char* y) { String r; cat(x, y, r); return r;}inline String operator + (const SubString& x, char y) { String r; cat(x, y, r); return r;}inline String operator + (const char* x, const String& y) { String r; cat(x, y, r); return r;}inline String operator + (const char* x, const SubString& y) { String r; cat(x, y, r); return r;}inline String reverse(const String& x) { String r; r.rep = Sreverse(x.rep, r.rep); return r;}inline String upcase(const String& x) { String r; r.rep = Supcase(x.rep, r.rep); return r;}inline String downcase(const String& x) { String r; r.rep = Sdowncase(x.rep, r.rep); return r;}inline String capitalize(const String& x) { String r; r.rep = Scapitalize(x.rep, r.rep); return r;}#endif// prependinline void String::prepend(const String& y){ rep = Sprepend(rep, y.chars(), y.length());}inline void String::prepend(const char* y){ rep = Sprepend(rep, y, -1); }inline void String::prepend(char y){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -