A class for handling character strings derived from std::string. More...
Classes | |
struct | hash |
Hashing function for string and derived string classes. More... | |
Public Member Functions | |
string ()=default | |
Construct null. More... | |
string (const std::string &str) | |
Copy construct from std::string. More... | |
string (std::string &&str) | |
Move construct from std::string. More... | |
string (const char *str) | |
Construct as copy of character array. More... | |
string (const char *str, const size_type len) | |
Construct as copy with a maximum number of characters. More... | |
string (const char c) | |
Construct from a single character. More... | |
string (const size_type len, const char c) | |
Construct fill copies of a single character. More... | |
string (Istream &is) | |
Construct from Istream. More... | |
bool | match (const std::string &text) const |
Test for equality. More... | |
string & | replace (const std::string &s1, const std::string &s2, size_type pos=0) |
string & | replaceAll (const std::string &s1, const std::string &s2, size_type pos=0) |
string & | replaceAny (const std::string &s1, const char c2, size_type pos=0) |
string & | expand (const bool allowEmpty=false) |
bool | removeRepeated (const char character) |
Remove repeated characters. More... | |
bool | removeStart (const std::string &text) |
Remove the given text from the start of the string. More... | |
bool | removeStart (const char c) |
Remove leading character, unless string is a single character. More... | |
bool | removeEnd (const std::string &text) |
Remove the given text from the end of the string. More... | |
bool | removeEnd (const char c) |
Remove trailing character, unless string is a single character. More... | |
void | swap (std::string &str) |
Swap contents. Self-swapping is a no-op. More... | |
bool | operator() (const std::string &text) const |
Test for equality. Allows use as a predicate. More... | |
bool | starts_with (const std::string &s) const |
True if string starts with the given prefix (cf. C++20) More... | |
bool | starts_with (const char c) const |
True if string starts with the given character (cf. C++20) More... | |
bool | ends_with (const std::string &s) const |
True if string ends with the given suffix (cf. C++20) More... | |
bool | ends_with (const char c) const |
True if string ends with the given character (cf. C++20) More... | |
size_type | count (const char c) const |
bool | startsWith (const std::string &s) const |
Deprecated(2019-11) More... | |
bool | endsWith (const std::string &s) const |
Deprecated(2019-11) More... | |
bool | removeTrailing (const char c) |
Deprecated(2019-11) More... | |
template<class String > | |
Foam::string | quotemeta (const std::string &str, const char quote) |
Static Public Member Functions | |
template<class String > | |
static bool | valid (const std::string &str) |
Does the string contain valid characters only? More... | |
template<class String > | |
static bool | meta (const std::string &str, const char quote='\\') |
Does this string contain meta-characters? More... | |
template<class String > | |
static bool | stripInvalid (std::string &str) |
Strip invalid characters from the given string. More... | |
template<class String > | |
static String | validate (const std::string &str) |
Return a valid String from the given string. More... | |
template<class String > | |
static string | quotemeta (const std::string &str, const char quote='\\') |
Return a String with quoted meta-characters from the given string. More... | |
Static Public Attributes | |
static const char *const | typeName = "string" |
The type name "string". More... | |
static int | debug |
The debug flag. More... | |
static const string | null |
An empty string. More... | |
Protected Member Functions | |
std::string::size_type | find_ext () const |
Find position of a file extension dot, return npos on failure. More... | |
word | ext () const |
Return file name extension (part after last .) More... | |
bool | ext (const word &ending) |
Append a '.' and the ending. More... | |
bool | hasPath () const |
Return true if it contains a '/' character. More... | |
bool | hasExt () const |
Return true if it has an extension or simply ends with a '.'. More... | |
bool | hasExt (const word &ending) const |
Return true if the extension is the same as the given ending. More... | |
bool | hasExt (const wordRe &ending) const |
Return true if the extension matches the given ending. More... | |
bool | removeExt () |
Remove extension, returning true if string changed. More... | |
bool | removePath () |
Remove leading path, returning true if string changed. More... | |
Static Protected Member Functions | |
static std::string::size_type | find_ext (const std::string &str) |
Find position of a file extension dot, return npos on failure. More... | |
template<class PrimitiveType > | |
static std::string::size_type | string_printf (std::string &output, const char *fmt, const PrimitiveType &val) |
A printf-style formatter for a primitive. More... | |
template<class PrimitiveType > | |
static std::string::size_type | string_printf (std::string &output, const std::string &fmt, const PrimitiveType &val) |
A printf-style formatter for a primitive. More... | |
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.
|
default |
Construct null.
|
inline |
|
inline |
|
inline |
|
inlineexplicit |
Construct from Istream.
Definition at line 34 of file stringIO.C.
|
inlinestaticprotected |
|
inlineprotected |
Find position of a file extension dot, return npos on failure.
A wrapped version of find_last_of("./") with additional logic.
Definition at line 44 of file stringI.H.
Referenced by string::ext().
|
staticprotected |
A printf-style formatter for a primitive.
Definition at line 36 of file stringTemplates.C.
References n.
|
staticprotected |
A printf-style formatter for a primitive.
Definition at line 64 of file stringTemplates.C.
|
protected |
Return file name extension (part after last .)
Definition at line 45 of file string.C.
References string::find_ext(), and word::null.
Referenced by word::ext(), and fileName::ext().
|
inlineprotected |
Return true if it contains a '/' character.
Definition at line 50 of file stringI.H.
References Foam::ListOps::find().
Referenced by fileName::hasPath().
|
inlineprotected |
Return true if it has an extension or simply ends with a '.'.
Definition at line 56 of file stringI.H.
Referenced by word::hasExt(), and fileName::hasExt().
Return true if the extension matches the given ending.
Definition at line 99 of file string.C.
References stdFoam::end(), and wordRe::match().
|
inlineprotected |
Remove extension, returning true if string changed.
Definition at line 76 of file stringI.H.
References erase().
Referenced by word::removeExt(), and fileName::removeExt().
|
inlineprotected |
Remove leading path, returning true if string changed.
Definition at line 62 of file stringI.H.
References erase().
Referenced by fileName::removePath().
|
inlinestatic |
|
inlinestatic |
Does this string contain meta-characters?
The meta characters can be optionally quoted.
Definition at line 176 of file stringI.H.
References Foam::constant::universal::c.
|
inlinestatic |
Strip invalid characters from the given string.
Definition at line 147 of file stringI.H.
References Foam::constant::universal::c.
|
inlinestatic |
Return a valid String from the given string.
Definition at line 238 of file stringI.H.
References Foam::constant::universal::c.
|
inlinestatic |
Return a String with quoted meta-characters from the given string.
|
inline |
Test for equality.
Definition at line 260 of file stringI.H.
Referenced by solutionControl::applyToField().
Foam::string & replace | ( | const std::string & | s1, |
const std::string & | s2, | ||
size_type | pos = 0 |
||
) |
Replace first occurrence of sub-string s1 with s2, beginning at pos
Definition at line 121 of file string.C.
References Foam::ListOps::find(), and Foam::pos().
Referenced by argList::displayDoc(), objectRegistry::rename(), ensightSurfaceReader::replaceMask(), cellMotionFvPatchField< Type >::updateCoeffs(), and graph::wordify().
Foam::string & replaceAll | ( | const std::string & | s1, |
const std::string & | s2, | ||
size_type | pos = 0 |
||
) |
Replace all occurrences of sub-string s1 with s2, beginning at pos in the string.
A no-op if s1 is empty.
Definition at line 137 of file string.C.
References Foam::ListOps::find(), and Foam::pos().
Foam::string & replaceAny | ( | const std::string & | s1, |
const char | c2, | ||
size_type | pos = 0 |
||
) |
Replace any occurrence of s1 characters with c2, beginning at pos in the string.
A no-op if s1 is empty.
Definition at line 160 of file string.C.
References Foam::constant::physicoChemical::c2, erase(), and Foam::pos().
Referenced by FileName::stripInvalid().
Foam::string & expand | ( | const bool | allowEmpty = false | ) |
Inplace expand initial tags, tildes, and all occurrences of environment variables as per stringOps::expand
Any unknown entries are removed silently if allowEmpty is true
Definition at line 186 of file string.C.
References Foam::stringOps::inplaceExpand().
Referenced by pointNoise::calculate(), surfaceNoise::calculate(), chemkinReader::chemkinReader(), externalFileCoupler::externalFileCoupler(), offsetSurface::offsetSurface(), tabulated6DoFAcceleration::read(), tabulated6DoFMotion::read(), abort::read(), Curle::read(), surfaceFormatsCore::relativeFilePath(), IOobject::selectIO(), TableFile< Type >::TableFile(), and triSurfaceMesh::writeObject().
bool removeRepeated | ( | const char | character | ) |
Remove repeated characters.
Definition at line 193 of file string.C.
References stdFoam::begin(), Foam::constant::universal::c, stdFoam::cbegin(), stdFoam::cend(), erase(), and Foam::ListOps::find().
bool removeStart | ( | const std::string & | text | ) |
Remove the given text from the start of the string.
Definition at line 227 of file string.C.
References erase().
Referenced by dynamicCode::libraryBaseName().
bool removeStart | ( | const char | c | ) |
Remove leading character, unless string is a single character.
Definition at line 257 of file string.C.
References Foam::constant::universal::c, and erase().
bool removeEnd | ( | const std::string & | text | ) |
Remove the given text from the end of the string.
Definition at line 242 of file string.C.
References erase().
Referenced by NASsurfaceFormat< Face >::read().
bool removeEnd | ( | const char | c | ) |
Remove trailing character, unless string is a single character.
Definition at line 269 of file string.C.
References Foam::constant::universal::c, erase(), and n.
|
inline |
Swap contents. Self-swapping is a no-op.
Definition at line 266 of file stringI.H.
Referenced by keyType::swap(), and wordRe::swap().
|
inline |
|
inline |
True if string starts with the given prefix (cf. C++20)
Definition at line 299 of file string.H.
References s.
Referenced by argList::displayDoc(), Foam::dlOpen(), argList::parse(), ABAQUSCore::readHelper::read(), and seriesWriter::scan().
|
inline |
True if string starts with the given character (cf. C++20)
Definition at line 305 of file string.H.
References Foam::constant::universal::c.
|
inline |
True if string ends with the given suffix (cf. C++20)
Definition at line 311 of file string.H.
References s.
Referenced by dynamicOversetFvMesh::baseName().
|
inline |
True if string ends with the given character (cf. C++20)
Definition at line 317 of file string.H.
References Foam::constant::universal::c.
Foam::string::size_type count | ( | const char | c | ) | const |
Count the number of occurrences of the specified character in the string
Partially deprecated (NOV-2017) in favour of stringOps::count
Definition at line 114 of file string.C.
References Foam::constant::universal::c, and Foam::stringOps::count().
|
inline |
Deprecated(2019-11)
|
inline |
Deprecated(2019-11)
|
inline |
Deprecated(2019-11)
|
inline |
Definition at line 201 of file stringI.H.
References Foam::constant::universal::c.
|
static |
|
static |
An empty string.
Definition at line 147 of file string.H.
Referenced by ABAQUSCore::readHelper::addNewElset(), genericRagelLemonDriver::clear(), token::stringToken(), and OFstreamCollator::write().