Rogue Wave Software logo banner

Click on the banner to return to the Class Reference home page.

©Copyright 1996 Rogue Wave Software

RWWSubString

Synopsis

#include <rw/wstring.h>
RWWString s(L"test string");
s(6,3);   // "tri"

Description

The class RWWSubString allows some subsection of an RWWString to be addressed by defining a starting position and an extent. For example the 7th through the 11th elements, inclusive, would have a starting position of 7 and an extent of 5. The specification of a starting position and extent can also be done in your behalf by such functions as RWWString::strip() or the overloaded function call operator taking a regular expression as an argument. There are no public constructors -- RWWSubStrings are constructed by various functions of the RWWString class and then destroyed immediately.

A zero lengthsubstring is one with a defined starting position and an extent of zero. It can be thought of as starting just before the indicated character, but not including it. It can be used as an lvalue. A null substring is also legal and is frequently used to indicate that a requested substring, perhaps through a search, does not exist. A null substring can be detected with member function isNull(). However, it cannot be used as an lvalue.

Persistence

None

Example

#include <rw/rstream.h>
#include <rw/wstring.h>

main(){
 RWWString s(L"What I tell you is true.");
 // Create a substring and use it as an lvalue:
 s(15,0) = RWWString(L" three times");
 cout << s << endl;
 return 0;
}

Program output:

What I tell you three times is true.

Assignment Operators

void
operator=(const RWWString&);
void
operator=(const wchar_t*);

Indexing Operators

wchar_t
operator[](size_t i);
wchar_t&
operator[](size_t i) const;
wchar_t
operator()(size_t i);
wchar_t&
operator()(size_t i) const;

Public Member Functions

RWBoolean
isNull() const;
size_t
length() const;
RWBoolean
operator!() const;
size_t
start() const;
void
toLower();
void
toUpper();

Global Logical Operators

RWBoolean
operator==(const RWWSubString&, const RWWSubString&);
RWBoolean
operator==(const RWWString&,    const RWWSubString&);
RWBoolean
operator==(const RWWSubString&, const RWWString&   );
RWBoolean
operator==(const wchar_t*,      const RWWSubString&);
RWBoolean
operator==(const RWWSubString&, const wchar_t*     );
RWBoolean
operator!=(const RWWString&,    const RWWString&   );
RWBoolean
operator!=(const RWWString&,    const RWWSubString&);
RWBoolean
operator!=(const RWWSubString&, const RWWString&   );
RWBoolean
operator!=(const wchar_t*,      const RWWString&   );
RWBoolean
operator!=(const RWWString&,    const wchar_t*     );