Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
string Class Reference

A class for handling character strings derived from std::string. More...

Inheritance diagram for string:
Inheritance graph
[legend]
Collaboration diagram for string:
Collaboration graph
[legend]

Classes

class  hash
 Hashing function class, shared by all the derived classes. More...
 

Public Member Functions

 string ()
 Construct null. More...
 
 string (const std::string &)
 Construct from std::string. More...
 
 string (const char *)
 Construct as copy of character array. More...
 
 string (const char *, const size_type)
 Construct as copy of specified number of characters. More...
 
 string (const char)
 Construct from a single character. More...
 
 string (Istream &)
 Construct from Istream. More...
 
size_type count (const char) const
 Count and return the number of a given character in the string. More...
 
bool match (const std::string &) const
 True when strings match literally. More...
 
stringreplace (const string &oldStr, const string &newStr, size_type start=0)
 Replace first occurence of sub-string oldStr with newStr. More...
 
stringreplaceAll (const string &oldStr, const string &newStr, size_type start=0)
 Replace all occurences of sub-string oldStr with newStr. More...
 
stringexpand (const bool allowEmpty=false)
 Expand initial tildes and all occurences of environment variables. More...
 
bool removeRepeated (const char)
 Remove repeated characters returning true if string changed. More...
 
string removeRepeated (const char) const
 Return string with repeated characters removed. More...
 
bool removeTrailing (const char)
 Remove trailing character returning true if string changed. More...
 
string removeTrailing (const char) const
 Return string with trailing character removed. More...
 
string operator() (const size_type i, const size_type n) const
 Return the sub-string from the i-th character for n characters. More...
 
string operator() (const size_type n) const
 Return the sub-string from the first character for n characters. More...
 
template<class String >
Foam::string quotemeta (const string &str, const char quote)
 

Static Public Member Functions

template<class String >
static bool valid (const string &)
 Is this string type valid? More...
 
template<class String >
static bool meta (const string &, const char quote='\\')
 Does this string have particular meta-characters? More...
 
template<class String >
static bool stripInvalid (string &)
 Strip invalid characters from the given string. More...
 
template<class String >
static String validate (const string &)
 Return a valid String from the given string. More...
 
template<class String >
static string quotemeta (const string &, const char quote='\\')
 Return a String with quoted meta-characters from the given string. More...
 

Static Public Attributes

static const char *const typeName = "string"
 
static int debug
 
static const string null
 An empty string. More...
 

Friends

Istreamoperator>> (Istream &, string &)
 
Ostreamoperator<< (Ostream &, const string &)
 

Detailed Description

A class for handling character strings derived from std::string.

Strings may contain any characters and therefore are delimited by quotes for IO : "any list of characters".

Used as a base class for word and fileName.

See also
Foam::findEtcFile() for information about the site/user OpenFOAM configuration directory
Source files

Definition at line 74 of file string.H.

Constructor & Destructor Documentation

string ( )
inline

Construct null.

Definition at line 30 of file stringI.H.

Referenced by fileName::caseName(), and string::hash::hash().

Here is the caller graph for this function:

string ( const std::string &  str)
inline

Construct from std::string.

Definition at line 34 of file stringI.H.

string ( const char *  str)
inline

Construct as copy of character array.

Definition at line 41 of file stringI.H.

string ( const char *  str,
const size_type  len 
)
inline

Construct as copy of specified number of characters.

Definition at line 48 of file stringI.H.

string ( const char  c)
inline

Construct from a single character.

Definition at line 55 of file stringI.H.

string ( Istream is)

Construct from Istream.

Definition at line 31 of file stringIO.C.

Member Function Documentation

Foam::string::size_type count ( const char  c) const

Count and return the number of a given character in the string.

Definition at line 39 of file string.C.

References string::replace().

Referenced by string::hash::hash(), OSstream::write(), and OSstream::writeQuoted().

Here is the call graph for this function:

Here is the caller graph for this function:

bool valid ( const string str)
inlinestatic

Is this string type valid?

Definition at line 64 of file stringI.H.

Referenced by string::hash::hash().

Here is the caller graph for this function:

bool meta ( const string str,
const char  quote = '\\' 
)
inlinestatic

Does this string have particular meta-characters?

The meta characters can be optionally quoted.

Definition at line 112 of file stringI.H.

Referenced by string::hash::hash().

Here is the caller graph for this function:

bool stripInvalid ( string str)
inlinestatic

Strip invalid characters from the given string.

Definition at line 78 of file stringI.H.

References Foam::constant::universal::c.

Referenced by string::hash::hash().

Here is the caller graph for this function:

String validate ( const string str)
inlinestatic

Return a valid String from the given string.

Definition at line 172 of file stringI.H.

Referenced by string::hash::hash().

Here is the caller graph for this function:

static string quotemeta ( const string ,
const char  quote = '\\' 
)
inlinestatic

Return a String with quoted meta-characters from the given string.

Referenced by string::hash::hash().

Here is the caller graph for this function:

bool match ( const std::string &  str) const
inline

True when strings match literally.

Definition at line 179 of file stringI.H.

Referenced by solutionControl::applyToField(), and string::hash::hash().

Here is the caller graph for this function:

Foam::string & replace ( const string oldStr,
const string newStr,
size_type  start = 0 
)

Replace first occurence of sub-string oldStr with newStr.

starting at start

Definition at line 56 of file string.C.

References string::replaceAll().

Referenced by fileName::caseName(), string::count(), string::hash::hash(), objectRegistry::rename(), cellMotionFvPatchField< Type >::updateCoeffs(), and graph::wordify().

Here is the call graph for this function:

Here is the caller graph for this function:

Foam::string & replaceAll ( const string oldStr,
const string newStr,
size_type  start = 0 
)

Replace all occurences of sub-string oldStr with newStr.

starting at start

Definition at line 74 of file string.C.

Referenced by argList::displayDoc(), string::hash::hash(), error::operator()(), Foam::printSourceFileAndLine(), and string::replace().

Here is the caller graph for this function:

Foam::string & expand ( const bool  allowEmpty = false)

Expand initial tildes and all occurences of environment variables.

Expansion includes:

  1. environment variables
    • "$VAR", "${VAR}"
  2. current directory
    • leading "./" : the current directory
  3. tilde expansion
    • leading "~/" : home directory
    • leading "~user" : home directory for specified user
    • leading "~OpenFOAM" : site/user OpenFOAM configuration directory

Any unknown entries are removed silently if allowEmpty is true

See also
Foam::findEtcFile

Definition at line 95 of file string.C.

References Foam::stringOps::inplaceExpand().

Referenced by argList::displayDoc(), string::hash::hash(), and TableFile< Type >::TableFile().

Here is the call graph for this function:

Here is the caller graph for this function:

bool removeRepeated ( const char  character)

Remove repeated characters returning true if string changed.

Definition at line 102 of file string.C.

References Foam::constant::universal::c, and resize().

Referenced by string::hash::hash(), and string::removeRepeated().

Here is the call graph for this function:

Here is the caller graph for this function:

Foam::string removeRepeated ( const char  character) const

Return string with repeated characters removed.

Definition at line 140 of file string.C.

References string::removeRepeated().

Here is the call graph for this function:

bool removeTrailing ( const char  character)

Remove trailing character returning true if string changed.

Definition at line 148 of file string.C.

References resize().

Referenced by string::hash::hash(), and string::removeTrailing().

Here is the call graph for this function:

Here is the caller graph for this function:

Foam::string removeTrailing ( const char  character) const

Return string with trailing character removed.

Definition at line 163 of file string.C.

References string::removeTrailing().

Here is the call graph for this function:

Foam::string operator() ( const size_type  i,
const size_type  n 
) const
inline

Return the sub-string from the i-th character for n characters.

Definition at line 189 of file stringI.H.

References n.

Foam::string operator() ( const size_type  n) const
inline

Return the sub-string from the first character for n characters.

Definition at line 198 of file stringI.H.

Foam::string quotemeta ( const string str,
const char  quote 
)
inline

Definition at line 136 of file stringI.H.

Friends And Related Function Documentation

Istream& operator>> ( Istream ,
string  
)
friend

Referenced by string::hash::hash().

Ostream& operator<< ( Ostream ,
const string  
)
friend

Referenced by string::hash::hash().

Member Data Documentation

const char *const typeName = "string"
static

Definition at line 82 of file string.H.

Referenced by token::stringToken().

int debug
static

Definition at line 83 of file string.H.

const Foam::string null
static

An empty string.

Definition at line 86 of file string.H.

Referenced by Foam::domainName(), token::stringToken(), and Foam::userName().


The documentation for this class was generated from the following files: