⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 string.h

📁 早期freebsd实现
💻 H
📖 第 1 页 / 共 3 页
字号:
int operator<=(const SubString& x, const SubString&  y);int operator==(const SubString& x, const char* t);int operator!=(const SubString& x, const char* t);int operator> (const SubString& x, const char* t);int operator>=(const SubString& x, const char* t);int operator< (const SubString& x, const char* t);int operator<=(const SubString& x, const char* t);// status reports, needed before defining other thingsinline unsigned int String::length() const {  return rep->len; }inline int         String::empty() const { return rep->len == 0; }inline const char* String::chars() const { return &(rep->s[0]); }inline int         String::allocation() const { return rep->sz; }inline void        String::alloc(int newsize) { rep = Sresize(rep, newsize); }inline unsigned int SubString::length() const { return len; }inline int         SubString::empty() const { return len == 0; }inline const char* SubString::chars() const { return &(S.rep->s[pos]); }// constructorsinline String::String()   : rep(&_nilStrRep) {}inline String::String(const String& x)   : rep(Scopy(0, x.rep)) {}inline String::String(const char* t)   : rep(Salloc(0, t, -1, -1)) {}inline String::String(const char* t, int tlen)  : rep(Salloc(0, t, tlen, tlen)) {}inline String::String(const SubString& y)  : rep(Salloc(0, y.chars(), y.length(), y.length())) {}inline String::String(char c)   : rep(Salloc(0, &c, 1, 1)) {}inline String::~String() { if (rep != &_nilStrRep) delete rep; }inline SubString::SubString(const SubString& x)  :S(x.S), pos(x.pos), len(x.len) {}inline SubString::SubString(String& x, int first, int l)  :S(x), pos(first), len(l) {}inline SubString::~SubString() {}// assignmentinline void String::operator =  (const String& y){   rep = Scopy(rep, y.rep);}inline void String::operator=(const char* t){  rep = Salloc(rep, t, -1, -1); }inline void String::operator=(const SubString&  y){  rep = Salloc(rep, y.chars(), y.length(), y.length());}inline void String::operator=(char c){  rep = Salloc(rep, &c, 1, 1); }inline void SubString::operator = (const char* ys){  assign(0, ys);}inline void SubString::operator = (char ch){  assign(0, &ch, 1);}inline void SubString::operator = (const String& y){  assign(y.rep, y.chars(), y.length());}inline void SubString::operator = (const SubString& y){  assign(y.S.rep, y.chars(), y.length());}// 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 void String::operator +=(const String& y){  cat(*this, y, *this);}inline void String::operator +=(const SubString& y){  cat(*this, y, *this);}inline void String::operator += (const char* y){  cat(*this, y, *this);}inline void String:: operator +=(char y){  cat(*this, y, *this);}// constructive concatenation#if defined(__GNUG__) && !defined(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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -