A++ » INCLUDE » TString

class TString


TString

Basic string class.

Cannot be stored in a TCollection... use TObjString instead.


Function Members (Methods)

public:
virtual~TString()
TString&Append(const char* cs)
TString&Append(const TString& s)
TString&Append(const char* cs, Ssiz_t n)
TString&Append(const TString& s, Ssiz_t n)
TString&Append(char c, Ssiz_t rep = 1)
Double_tAtof() const
Int_tAtoi() const
Long64_tAtoll() const
static TStringBaseConvert(const TString& s_in, Int_t base_in, Int_t base_out)
Bool_tBeginsWith(const char* s, TString::ECaseCompare cmp = kExact) const
Bool_tBeginsWith(const TString& pat, TString::ECaseCompare cmp = kExact) const
Ssiz_tCapacity() const
Ssiz_tCapacity(Ssiz_t n)
TString&Chop()
static TClass*Class()
voidClear()
intCompareTo(const char* cs, TString::ECaseCompare cmp = kExact) const
intCompareTo(const TString& st, TString::ECaseCompare cmp = kExact) const
Bool_tContains(const TRegexp& pat) const
Bool_tContains(TPRegexp& pat) const
Bool_tContains(const char* pat, TString::ECaseCompare cmp = kExact) const
Bool_tContains(const TString& pat, TString::ECaseCompare cmp = kExact) const
TStringCopy() const
Int_tCountChar(Int_t c) const
const char*Data() const
Bool_tEndsWith(const char* pat, TString::ECaseCompare cmp = kExact) const
Bool_tEqualTo(const char* cs, TString::ECaseCompare cmp = kExact) const
Bool_tEqualTo(const TString& st, TString::ECaseCompare cmp = kExact) const
virtual voidFillBuffer(char*& buffer) const
Ssiz_tFirst(char c) const
Ssiz_tFirst(const char* cs) const
voidForm(const char* fmt)
static TStringFormat(const char* fmt)
static Ssiz_tGetInitialCapacity()
static Ssiz_tGetMaxWaste()
static Ssiz_tGetResizeIncrement()
Bool_tGets(FILE* fp, Bool_t chop = kTRUE)
UInt_tHash(TString::ECaseCompare cmp = kExact) const
static UInt_tHash(const void* txt, Int_t ntxt)
Ssiz_tIndex(const TRegexp& pat, Ssiz_t i = 0) const
Ssiz_tIndex(TPRegexp& pat, Ssiz_t i = 0) const
Ssiz_tIndex(const char* pat, Ssiz_t i = 0, TString::ECaseCompare cmp = kExact) const
Ssiz_tIndex(const TString& s, Ssiz_t i = 0, TString::ECaseCompare cmp = kExact) const
Ssiz_tIndex(const TRegexp& pat, Ssiz_t* ext, Ssiz_t i = 0) const
Ssiz_tIndex(TPRegexp& pat, Ssiz_t* ext, Ssiz_t i = 0) const
Ssiz_tIndex(const char* pat, Ssiz_t patlen, Ssiz_t i, TString::ECaseCompare cmp) const
Ssiz_tIndex(const TString& s, Ssiz_t patlen, Ssiz_t i, TString::ECaseCompare cmp) const
static Ssiz_tInitialCapacity(Ssiz_t ic = 15)
TString&Insert(Ssiz_t pos, const char* s)
TString&Insert(Ssiz_t pos, const TString& s)
TString&Insert(Ssiz_t pos, const char* s, Ssiz_t extent)
TString&Insert(Ssiz_t pos, const TString& s, Ssiz_t extent)
virtual TClass*IsA() const
Bool_tIsAlnum() const
Bool_tIsAlpha() const
Bool_tIsAscii() const
Bool_tIsBin() const
Bool_tIsDec() const
Bool_tIsDigit() const
Bool_tIsFloat() const
Bool_tIsHex() const
Bool_tIsInBaseN(Int_t base) const
Bool_tIsNull() const
Bool_tIsOct() const
Bool_tIsWhitespace() const
static TStringItoa(Int_t value, Int_t base)
Ssiz_tLast(char c) const
Ssiz_tLength() const
static TStringLLtoa(Long64_t value, Int_t base)
static Ssiz_tMaxWaste(Ssiz_t mw = 15)
Bool_tMaybeRegexp() const
Bool_tMaybeWildcard() const
TStringMD5() const
string_viewoperator basic_string_view() const
const char*operator const char *() const
char&operator()(Ssiz_t i)
charoperator()(Ssiz_t i) const
TSubStringoperator()(const TRegexp& re) const
TSubStringoperator()(TPRegexp& re) const
TSubStringoperator()(Ssiz_t start, Ssiz_t len) const
TSubStringoperator()(const TRegexp& re, Ssiz_t start) const
TSubStringoperator()(TPRegexp& re, Ssiz_t start) const
TString&operator+=(const char* s)
TString&operator+=(const TString& s)
TString&operator+=(char c)
TString&operator+=(Short_t i)
TString&operator+=(UShort_t i)
TString&operator+=(Int_t i)
TString&operator+=(UInt_t i)
TString&operator+=(Long_t i)
TString&operator+=(ULong_t i)
TString&operator+=(Float_t f)
TString&operator+=(Double_t f)
TString&operator+=(Long64_t i)
TString&operator+=(ULong64_t i)
TString&operator=(char s)
TString&operator=(const char* s)
TString&operator=(const TString& s)
TString&operator=(const string& s)
TString&operator=(const string_view& s)
TString&operator=(const TSubString& s)
char&operator[](Ssiz_t i)
charoperator[](Ssiz_t i) const
TString&Prepend(const char* cs)
TString&Prepend(const TString& s)
TString&Prepend(const char* cs, Ssiz_t n)
TString&Prepend(const TString& s, Ssiz_t n)
TString&Prepend(char c, Ssiz_t rep = 1)
voidPuts(FILE* fp)
virtual voidReadBuffer(char*& buffer)
istream&ReadFile(istream& str)
istream&ReadLine(istream& str, Bool_t skipWhite = kTRUE)
istream&ReadString(istream& str)
static TString*ReadString(TBuffer& b, const TClass* clReq)
istream&ReadToDelim(istream& str, char delim = '\n')
istream&ReadToken(istream& str)
TString&Remove(Ssiz_t pos)
TString&Remove(Ssiz_t pos, Ssiz_t n)
TString&Remove(TString::EStripType s, char c)
TString&Replace(Ssiz_t pos, Ssiz_t n, const char* s)
TString&Replace(Ssiz_t pos, Ssiz_t n, const TString& s)
TString&Replace(Ssiz_t pos, Ssiz_t n, const char* s, Ssiz_t ns)
TString&Replace(Ssiz_t pos, Ssiz_t n1, const TString& s, Ssiz_t n2)
TString&ReplaceAll(const TString& s1, const TString& s2)
TString&ReplaceAll(const TString& s1, const char* s2)
TString&ReplaceAll(const char* s1, const TString& s2)
TString&ReplaceAll(const char* s1, const char* s2)
TString&ReplaceAll(const char* s1, Ssiz_t ls1, const char* s2, Ssiz_t ls2)
voidResize(Ssiz_t n)
static Ssiz_tResizeIncrement(Ssiz_t ri = 16)
virtual voidShowMembers(TMemberInspector& insp) const
virtual Int_tSizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
TSubStringStrip(TString::EStripType s = kTrailing, char c = ' ') const
TSubStringSubString(const char* pat, Ssiz_t start = 0, TString::ECaseCompare cmp = kExact) const
TString&Swap(TString& other)
TObjArray*Tokenize(const TString& delim) const
Bool_tTokenize(TString& tok, Ssiz_t& from, const char* delim = " ") const
voidToLower()
voidToUpper()
TString()
TString(Ssiz_t ic)
TString(const TString& s)
TString(TString&& s)
TString(const char* s)
TString(const string& s)
TString(char c)
TString(const string_view& sub)
TString(const TSubString& sub)
TString(const char* s, Ssiz_t n)
TString(char c, Ssiz_t s)
static TStringUItoa(UInt_t value, Int_t base)
static TStringULLtoa(ULong64_t value, Int_t base)
static voidWriteString(TBuffer& b, const TString* a)
protected:
static Ssiz_tAdjustCapacity(Ssiz_t oldCap, Ssiz_t newCap)
static Ssiz_tAlign(Ssiz_t s)
voidAssertElement(Ssiz_t nc) const
voidClobber(Ssiz_t nc)
voidInitChar(char c)
static Ssiz_tRecommend(Ssiz_t s)
TString(const char* a1, Ssiz_t n1, const char* a2, Ssiz_t n2)
private:
voidClone(Ssiz_t nc)
voidFormImp(const char* fmt, va_list ap)
Ssiz_tGetLongCap() const
char*GetLongPointer()
const char*GetLongPointer() const
Ssiz_tGetLongSize() const
char*GetPointer()
const char*GetPointer() const
char*GetShortPointer()
const char*GetShortPointer() const
Ssiz_tGetShortSize() const
UInt_tHashCase() const
UInt_tHashFoldCase() const
char*Init(Ssiz_t capacity, Ssiz_t nchar)
Bool_tIsLong() const
static Ssiz_tMaxSize()
voidSetLongCap(Ssiz_t s)
voidSetLongPointer(char* p)
voidSetLongSize(Ssiz_t s)
voidSetShortSize(Ssiz_t s)
voidSetSize(Ssiz_t s)
voidUnLink() const
voidZero()

Data Members

public:
static TString::EStripTypekBoth
static TString::ECaseComparekExact
static TString::ECaseComparekIgnoreCase
static TString::EStripTypekLeading
static const Ssiz_tkNPOS
static TString::EStripTypekTrailing
protected:
TString::Rep_tfRep! String data
static TString::(anonymous)kAlignment
private:
static TString::(anonymous)kLongMask
static TString::(anonymous)kMinCap
static TString::(anonymous)kNwords
static TString::(anonymous)kShortMask

Class Charts

Inheritance Chart:
TString
TEveException
TGString
TGHotString
TStringLong
TStringToken

Function documentation

TString & Append(const char* cs)
{ return Replace(Length(), 0, cs, cs ? strlen(cs) : 0); }
TString & Append(const char* cs, Ssiz_t n)
{ return Replace(Length(), 0, cs, n); }
TString & Append(const TString& s)
{ return Replace(Length(), 0, s.Data(), s.Length()); }
TString & Append(const TString& s, Ssiz_t n)
{ return Replace(Length(), 0, s.Data(), TMath::Min(n, s.Length())); }
TString & operator+=(const char* s)
{ return Append(cs, cs ? strlen(cs) : 0); }
TString & operator+=(const TString& s)
{ return Append(s.Data(), s.Length()); }
TString & operator+=(char c)
{ return Append(c); }
TString & operator+=(Long_t i)
{ char s[32]; sprintf(s, "%ld", i); return operator+=(s); }
TString & operator+=(ULong_t i)
{ char s[32]; sprintf(s, "%lu", i); return operator+=(s); }
TString & operator+=(Short_t i)
{ return operator+=((Long_t) i); }
TString & operator+=(UShort_t i)
{ return operator+=((ULong_t) i); }
TString & operator+=(Int_t i)
{ return operator+=((Long_t) i); }
TString & operator+=(UInt_t i)
{ return operator+=((ULong_t) i); }
TString & operator+=(Double_t f)
TString & operator+=(Float_t f)
{ return operator+=((Double_t) f); }
TString & operator+=(Long64_t i)
TString & operator+=(ULong64_t i)
Bool_t BeginsWith(const char* s, TString::ECaseCompare cmp = kExact) const
{ return Index(s, s ? strlen(s) : (Ssiz_t)0, (Ssiz_t)0, cmp) == 0; }
Bool_t BeginsWith(const TString& pat, TString::ECaseCompare cmp = kExact) const
{ return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) == 0; }
Bool_t Contains(const TString& pat, TString::ECaseCompare cmp = kExact) const
{ return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) != kNPOS; }
Bool_t Contains(const char* pat, TString::ECaseCompare cmp = kExact) const
{ return Index(s, s ? strlen(s) : 0, (Ssiz_t)0, cmp) != kNPOS; }
Bool_t Contains(const TRegexp& pat) const
{ return Index(pat, (Ssiz_t)0) != kNPOS; }
Bool_t Contains(TPRegexp& pat) const
{ return Index(pat, (Ssiz_t)0) != kNPOS; }
Bool_t EqualTo(const char* cs, TString::ECaseCompare cmp = kExact) const
{ return (CompareTo(cs, cmp) == 0) ? kTRUE : kFALSE; }
Bool_t EqualTo(const TString& st, TString::ECaseCompare cmp = kExact) const
{ return (CompareTo(st, cmp) == 0) ? kTRUE : kFALSE; }
Ssiz_t Index(const char* pat, Ssiz_t i = 0, TString::ECaseCompare cmp = kExact) const
{ return Index(s, s ? strlen(s) : 0, i, cmp); }
Ssiz_t Index(const TString& s, Ssiz_t i = 0, TString::ECaseCompare cmp = kExact) const
{ return Index(s.Data(), s.Length(), i, cmp); }
Ssiz_t Index(const TString& s, Ssiz_t patlen, Ssiz_t i, TString::ECaseCompare cmp) const
{ return Index(pat.Data(), patlen, i, cmp); }
TString & Insert(Ssiz_t pos, const char* s)
{ return Replace(pos, 0, cs, cs ? strlen(cs) : 0); }
TString & Insert(Ssiz_t pos, const char* s, Ssiz_t extent)
{ return Replace(pos, 0, cs, n); }
TString & Insert(Ssiz_t pos, const TString& s)
{ return Replace(pos, 0, s.Data(), s.Length()); }
TString & Insert(Ssiz_t pos, const TString& s, Ssiz_t extent)
{ return Replace(pos, 0, s.Data(), TMath::Min(n, s.Length())); }
TString & Prepend(const char* cs)
{ return Replace(0, 0, cs, cs ? strlen(cs) : 0); }
TString & Prepend(const char* cs, Ssiz_t n)
{ return Replace(0, 0, cs, n); }
TString & Prepend(const TString& s)
{ return Replace(0, 0, s.Data(), s.Length()); }
TString & Prepend(const TString& s, Ssiz_t n)
{ return Replace(0, 0, s.Data(), TMath::Min(n, s.Length())); }
TString & Remove(Ssiz_t pos)
{ return Replace(pos, TMath::Max(0, Length()-pos), 0, 0); }
TString & Remove(Ssiz_t pos, Ssiz_t n)
{ return Replace(pos, n, 0, 0); }
TString & Chop()
{ return Remove(TMath::Max(0, Length()-1)); }
TString & Replace(Ssiz_t pos, Ssiz_t n, const char* s)
{ return Replace(pos, n, cs, cs ? strlen(cs) : 0); }
TString & Replace(Ssiz_t pos, Ssiz_t n, const TString& s)
{ return Replace(pos, n, s.Data(), s.Length()); }
TString & Replace(Ssiz_t pos, Ssiz_t n1, const TString& s, Ssiz_t n2)
{ return Replace(pos, n1, s.Data(), TMath::Min(s.Length(), n2)); }
TString & ReplaceAll(const TString& s1, const TString& s2)
{ return ReplaceAll(s1.Data(), s1.Length(), s2.Data(), s2.Length()) ; }
TString & ReplaceAll(const TString& s1, const char* s2)
{ return ReplaceAll(s1.Data(), s1.Length(), s2, s2 ? strlen(s2) : 0); }
TString & ReplaceAll(const char* s1, const TString& s2)
{ return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2.Data(), s2.Length()); }
TString & ReplaceAll(const char* s1, const char* s2)
{ return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2, s2 ? strlen(s2) : 0); }
TString & Swap(TString& other)
 Swap the contents of other and this without reallocation.
char & operator()(Ssiz_t i)
{ return GetPointer()[i]; }
char operator()(Ssiz_t i) const
{ return GetPointer()[i]; }
char & operator[](Ssiz_t i)
{ AssertElement(i); return GetPointer()[i]; }
char operator[](Ssiz_t i) const
{ AssertElement(i); return GetPointer()[i]; }
void AssertElement(Ssiz_t nc) const
TSubString & operator=(const char* s)
TSubString & operator=(const TString& s)
TSubString & operator=(const TSubString& s)
char & operator()(Ssiz_t i)
char operator()(Ssiz_t i) const
const char * Data() const
Ssiz_t Length() const
{ return fExtent; }
void ToLower()
void ToUpper()
Bool_t IsNull() const
 For detecting null substrings
{ return fBegin == kNPOS; }
TString(const char* a1, Ssiz_t n1, const char* a2, Ssiz_t n2)
 Special concatenation constructor
void Clobber(Ssiz_t nc)
void InitChar(char c)
Ssiz_t Align(Ssiz_t s)
{ return (s + (kAlignment-1)) & ~(kAlignment-1); }
Ssiz_t Recommend(Ssiz_t s)
{ return (s < kMinCap ? kMinCap : Align(s+1)) - 1; }
Ssiz_t AdjustCapacity(Ssiz_t oldCap, Ssiz_t newCap)
Bool_t IsLong() const
{ return Bool_t(fRep.fShort.fSize & kShortMask); }
void SetShortSize(Ssiz_t s)
{ fRep.fShort.fSize = (unsigned char)(s << 1); }
Ssiz_t GetShortSize() const
{ return fRep.fShort.fSize >> 1; }
void SetLongSize(Ssiz_t s)
{ fRep.fLong.fSize = s; }
Ssiz_t GetLongSize() const
{ return fRep.fLong.fSize; }
void SetSize(Ssiz_t s)
void SetLongCap(Ssiz_t s)
{ fRep.fLong.fCap = kLongMask | s; }
Ssiz_t GetLongCap() const
{ return fRep.fLong.fCap & ~kLongMask; }
void SetLongPointer(char* p)
{ fRep.fLong.fData = p; }
char * GetLongPointer()
{ return fRep.fLong.fData; }
const char * GetLongPointer() const
{ return fRep.fLong.fData; }
char * GetShortPointer()
{ return fRep.fShort.fData; }
const char * GetShortPointer() const
{ return fRep.fShort.fData; }
char * GetPointer()
{ return IsLong() ? GetLongPointer() : GetShortPointer(); }
const char * GetPointer() const
{ return IsLong() ? GetLongPointer() : GetShortPointer(); }
Ssiz_t MaxSize()
{ return kMaxInt - 1; }
void UnLink() const
{ if (IsLong()) delete [] fRep.fLong.fData; }
void Zero()
char * Init(Ssiz_t capacity, Ssiz_t nchar)
void Clone(Ssiz_t nc)
void FormImp(const char* fmt, va_list ap)
UInt_t HashCase() const
UInt_t HashFoldCase() const
TString()
explicit TString(Ssiz_t ic)
TString(const TString& s)
TString(TString&& s)
TString(const char* s)
TString(const char* s, Ssiz_t n)
TString(const std::string &s)
TString(char c)
TString(char c, Ssiz_t s)
TString(const std::string_view &sub)
TString(const TSubString& sub)
virtual ~TString()
void FillBuffer(char*& buffer) const
 ROOT I/O interface
void ReadBuffer(char*& buffer)
Int_t Sizeof() const
TString * ReadString(TBuffer& b, const TClass* clReq)
void WriteString(TBuffer& b, const TString* a)
Bool_t Gets(FILE* fp, Bool_t chop = kTRUE)
 C I/O interface
void Puts(FILE* fp)
TString & operator=(char s)
 Assignment
TString & operator=(const char* s)
TString & operator=(const TString& s)
char & operator()(Ssiz_t i)
char operator()(Ssiz_t i) const
TSubString operator()(Ssiz_t start, Ssiz_t len) const
TString & Append(const char* cs)
 Non-static member functions
Int_t Atoi() const
Long64_t Atoll() const
Double_t Atof() const
Ssiz_t Capacity() const
{ return (IsLong() ? GetLongCap() : kMinCap) - 1; }
Ssiz_t Capacity(Ssiz_t n)
void Clear()
int CompareTo(const char* cs, TString::ECaseCompare cmp = kExact) const
int CompareTo(const TString& st, TString::ECaseCompare cmp = kExact) const
Int_t CountChar(Int_t c) const
TString Copy() const
Bool_t EndsWith(const char* pat, TString::ECaseCompare cmp = kExact) const
Ssiz_t First(char c) const
Ssiz_t First(const char* cs) const
void Form(const char *fmt, ...)
UInt_t Hash(TString::ECaseCompare cmp = kExact) const
Ssiz_t Index(const char* pat, Ssiz_t i = 0, TString::ECaseCompare cmp = kExact) const
Ssiz_t Index(const char* pat, Ssiz_t patlen, Ssiz_t i, TString::ECaseCompare cmp) const
Ssiz_t Index(const TRegexp& pat, Ssiz_t i = 0) const
Ssiz_t Index(const TRegexp& pat, Ssiz_t* ext, Ssiz_t i = 0) const
Ssiz_t Index(TPRegexp& pat, Ssiz_t i = 0) const
Bool_t IsAscii() const
Bool_t IsAlpha() const
Bool_t IsAlnum() const
Bool_t IsDigit() const
Bool_t IsFloat() const
Bool_t IsHex() const
Bool_t IsBin() const
Bool_t IsOct() const
Bool_t IsDec() const
Bool_t IsInBaseN(Int_t base) const
Bool_t IsWhitespace() const
{ return (Length() == CountChar(' ')); }
Ssiz_t Last(char c) const
Bool_t MaybeRegexp() const
Bool_t MaybeWildcard() const
TString MD5() const
TString & Prepend(const char* cs)
std::istream & ReadFile(istream& str)
std::istream & ReadLine(istream& str, Bool_t skipWhite = kTRUE)
std::istream & ReadToDelim(istream& str, char delim = '\n')
std::istream & ReadToken(istream& str)
TString & Remove(Ssiz_t pos)
TString & Replace(Ssiz_t pos, Ssiz_t n, const char* s)
TString & ReplaceAll(const TString& s1, const TString& s2)
void Resize(Ssiz_t n)
TSubString Strip(TString::EStripType s = kTrailing, char c = ' ') const
TObjArray * Tokenize(const TString& delim) const
Bool_t Tokenize(TString& tok, Ssiz_t& from, const char* delim = " ") const
UInt_t Hash(const void* txt, Int_t ntxt)
 Static member functions
Ssiz_t InitialCapacity(Ssiz_t ic = 15)
Ssiz_t MaxWaste(Ssiz_t mw = 15)
Ssiz_t ResizeIncrement(Ssiz_t ri = 16)
Ssiz_t GetInitialCapacity()
Ssiz_t GetResizeIncrement()
Ssiz_t GetMaxWaste()
TString Itoa(Int_t value, Int_t base)
TString UItoa(UInt_t value, Int_t base)
TString LLtoa(Long64_t value, Int_t base)
TString ULLtoa(ULong64_t value, Int_t base)
TString BaseConvert(const TString& s_in, Int_t base_in, Int_t base_out)
TString Format(const char *fmt, ...)