Re: [ROOT] TSubString::Data()

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Wed Oct 22 2003 - 17:00:02 MEST


Hi,

 you have to use it like this:

root [0]  TString str("Hello")
root [1] TString s = str(0,4)
root [2] s.Data()
(const char* 0x8959244)"Hell"

TSubString::Data() returns just the beginning of the string but we
cannot add a terminating 0 at the substring end.


Cheers, Fons.


On Wed, 2003-10-22 at 15:06, Stanislav Nesterov wrote:
>    Dear Fons,
>    I've found strange behaviour of the TSubString::Data() function: it 
> doesn't use the TSubString::fExtent variable to return a char* 
> representation of SubString. So for example:
> 
> root [0] TString str("Hello");
> root [1] str(0,4).Data()      
> (const char* 0x89287dc)"Hello"
> 
> instead of "Hell"
> 
>   It is because of 
> 
> inline const char* TSubString::Data() const
>      { return fStr->Data() + fBegin; }
> 
>   where only pointer to the whole string is returned.
>   I am not sure about workaround, so can you please fix it?
> 
> 				Best 
-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://www.rademakers.org/fons/      Fax:   +41 22 7679480



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET