A class for handling character strings derived from std::string. More...
#include <string.H>


Classes | |
| struct | hasher |
| Hashing functor for string and derived string classes. More... | |
| struct | hash |
| Deprecated hashing functor - use hasher. More... | |
Public Member Functions | |
| string ()=default | |
| Default construct. | |
| string (const std::string &str) | |
| Copy construct from std::string. | |
| string (std::string &&str) | |
| Move construct from std::string. | |
| string (const char *str) | |
| Construct as copy of character array. | |
| string (const char *str, const size_type len) | |
| Construct as copy with a maximum number of characters. | |
| string (const char c) | |
| Construct from a single character. | |
| string (const size_type len, const char c) | |
| Construct fill copies of a single character. | |
| string (Istream &is) | |
| Construct from Istream. | |
| bool | match (const std::string &text) const |
| Test for equality. | |
| 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. | |
| 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. | |
| 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. | |
| string & | expand (const bool allowEmpty=false) |
| Inplace expand initial tags, tildes, and all occurrences of environment variables as per stringOps::expand. | |
| bool | removeRepeated (const char character) |
| Remove repeated characters. | |
| bool | removeStart (const std::string &text) |
| Remove the given text from the start of the string. | |
| bool | removeStart (const char c) |
| Remove leading character, unless string is a single character. | |
| bool | removeEnd (const std::string &text) |
| Remove the given text from the end of the string. | |
| bool | removeEnd (const char c) |
| Remove trailing character, unless string is a single character. | |
| void | swap (std::string &str) |
| Swap contents. Self-swapping is a no-op. | |
| bool | operator() (const std::string &text) const |
| Test for equality. Allows use as a predicate. | |
| bool | contains (char c) const noexcept |
| True if string contains given character (cf. C++23). | |
| bool | contains (const std::string &s) const noexcept |
| True if string contains given [string view] substring (cf. C++23). | |
| bool | contains (const char *s) const |
| True if string contains given substring (cf. C++23). | |
| bool | starts_with (char c) const |
| True if string starts with given character (cf. C++20). | |
| bool | starts_with (const std::string &s) const |
| True if string starts with given [string view] prefix (C++20). | |
| bool | starts_with (const char *s) const |
| True if string starts with given prefix (C++20). | |
| bool | ends_with (char c) const |
| True if string ends with given character (cf. C++20). | |
| bool | ends_with (const std::string &s) const |
| True if string ends with given [string view] suffix (cf. C++20). | |
| bool | ends_with (const char *s) const |
| True if string ends with given suffix (cf. C++20). | |
| size_type | count (const char c) const |
| Count the number of occurrences of the specified character in the string. | |
| bool | startsWith (const std::string &s) const |
| Deprecated(2019-11). | |
| bool | endsWith (const std::string &s) const |
| Deprecated(2019-11). | |
| bool | removeTrailing (const char c) |
| Deprecated(2019-11). | |
Static Public Member Functions | |
| static std::string::size_type | length (const char *s) |
| Length of the character sequence (with nullptr protection). | |
| static std::string::size_type | length (const std::string &s) |
| The length of the string. | |
| template<class StringType> | |
| static bool | valid (const std::string &str) |
| Does the string contain valid characters only? | |
| template<class StringType> | |
| static bool | stripInvalid (std::string &str) |
| Strip invalid characters from the given string. | |
| template<class StringType> | |
| static StringType | validate (const std::string &str) |
| Return a valid String from the given string. | |
Static Public Attributes | |
| static const char *const | typeName = "string" |
| The type name "string". | |
| static int | debug |
| The debug flag. | |
| static const string | null |
| An empty string. | |
Protected Member Functions | |
| std::string::size_type | find_ext () const |
| Find position of a file extension dot, return npos on failure. | |
| word | ext () const |
| Return file name extension (part after last .). | |
| bool | ext (const word &ending) |
| Append a '.' and the ending. | |
| bool | has_ext () const |
| Return true if it has an extension or simply ends with a '.'. | |
| bool | has_ext (const char *ending) const |
| Return true if the extension is the same as the given ending. | |
| bool | has_ext (const std::string &ending) const |
| Return true if the extension is the same as the given ending. | |
| bool | has_ext (const wordRe &ending) const |
| Return true if the extension matches the given ending. | |
| bool | remove_path () |
| Remove leading path, return true if string changed. | |
| bool | remove_ext () |
| Remove extension, return true if string changed. | |
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. | |
| 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. | |
| 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. | |
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 |
Default construct.
Referenced by exprString::exprString(), exprString::exprString(), exprString::exprString(), exprString::exprString(), fileName::fileName(), fileName::fileName(), fileName::fileName(), fileName::fileName(), fileName::fileName(), fileName::fileName(), fileName::fileName(), fileName::has_ext(), fileName::has_ext(), string(), string(), string(), string(), word::word(), word::word(), word::word(), word::word(), word::word(), and word::word().

|
inline |
|
inline |
|
inline |
|
inline |
|
inlineexplicit |
|
inline |
|
explicit |
Construct from Istream.
Definition at line 28 of file stringIO.C.
|
inlinestaticprotected |
Find position of a file extension dot, return npos on failure.
A wrapped version of find_last_of("./") with additional logic.
Definition at line 24 of file stringI.H.
Referenced by find_ext(), has_ext(), has_ext(), fileName::isBackup(), fileName::lessExt(), word::lessExt(), and remove_ext().

|
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 37 of file stringI.H.
References find_ext().
Referenced by ext().


|
staticprotected |
A printf-style formatter for a primitive.
Definition at line 28 of file stringTemplates.C.
References n.
Referenced by word::printf(), word::printf(), and string_printf().

|
staticprotected |
A printf-style formatter for a primitive.
Definition at line 56 of file stringTemplates.C.
References string_printf().

|
protected |
Return file name extension (part after last .).
Definition at line 38 of file string.C.
References find_ext().
Referenced by fileName::ext(), fileName::ext(), word::ext(), word::ext(), fileName::replace_ext(), and word::replace_ext().


|
protected |
|
inlineprotected |
Return true if it has an extension or simply ends with a '.'.
Definition at line 43 of file stringI.H.
References find_ext().
Referenced by fileName::fileName(), has_ext(), and word::printf().


|
inlineprotected |
|
inlineprotected |
|
protected |
Return true if the extension matches the given ending.
Definition at line 74 of file string.C.
References find_ext(), has_ext(), wordRe::isLiteral(), and wordRe::match().

|
inlineprotected |
Remove leading path, return true if string changed.
Definition at line 79 of file stringI.H.
References erase().
Referenced by fileName::fileName().


|
inlineprotected |
Remove extension, return true if string changed.
Definition at line 93 of file stringI.H.
References erase(), and find_ext().
Referenced by fileName::fileName(), word::printf(), fileName::replace_ext(), and word::replace_ext().


|
inlinestatic |
Length of the character sequence (with nullptr protection).
Definition at line 259 of file string.H.
References s().
Referenced by fileName::fileName(), fileName::fileName(), substitutionModel::getKeys(), Foam::operator/(), Foam::operator>>(), ISstream::read(), ISstream::read(), ensightSurfaceReader::readGeometryHeader(), fileName::relative(), removeEnd(), removeEnd(), removeStart(), removeStart(), fileName::replace_name(), and fileOperation::splitProcessorPath().


|
inlinestatic |
|
inlinestatic |
Does the string contain valid characters only?
Definition at line 149 of file stringI.H.
Referenced by wordRe::compile(), and stripInvalid().

|
inlinestatic |
Strip invalid characters from the given string.
Definition at line 164 of file stringI.H.
References valid().
Referenced by keyType::setType(), FileName::stripInvalid(), VarName::stripInvalid(), fileName::stripInvalid(), word::stripInvalid(), keyType::uncompile(), and wordRe::uncompile().


|
inlinestatic |
Return a valid String from the given string.
Definition at line 193 of file stringI.H.
Referenced by entry::New(), OTstream::write(), and UOPstreamBase::write().

|
inline |
| 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 100 of file string.C.
References Foam::pos().
Referenced by argList::displayDoc(), fileName::replace_name(), 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 116 of file string.C.
References Foam::pos().
Referenced by environmentVariable::apply(), fileRegEx::apply(), functionObjectValue::apply(), userValue::apply(), dictionaryValue::processDict(), substitutionModel::replaceBuiltin(), and substitutionModel::replaceBuiltin().


| 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 139 of file string.C.
References 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 166 of file string.C.
References Foam::stringOps::inplaceExpand().
Referenced by abaqusMeshSet::abaqusMeshSet(), pointNoise::calculate(), surfaceNoise::calculate(), chemkinReader::chemkinReader(), offsetSurface::offsetSurface(), timeActivatedFileUpdate::read(), MapFieldConstraint< Type >::read(), tabulated6DoFMotion::read(), tabulated6DoFAcceleration::read(), surfaceFormatsCore::relativeFilePath(), IOobject::selectIO(), TableFile< Type >::TableFile(), and triSurfaceMesh::writeObject().


| bool removeRepeated | ( | const char | character | ) |
Remove repeated characters.
Definition at line 173 of file string.C.
References erase().
Referenced by FileName::stripInvalid(), and fileName::stripInvalid().


| bool removeStart | ( | const std::string & | text | ) |
Remove the given text from the start of the string.
Definition at line 207 of file string.C.
References erase(), and length().
Referenced by dlLibraryTable::basename().


| bool removeStart | ( | const char | c | ) |
| bool removeEnd | ( | const std::string & | text | ) |
Remove the given text from the end of the string.
Definition at line 222 of file string.C.
References erase(), and length().
Referenced by removeTrailing(), FileName::stripInvalid(), and fileName::stripInvalid().


| bool removeEnd | ( | const char | c | ) |
|
inline |
Swap contents. Self-swapping is a no-op.
Definition at line 223 of file stringI.H.
Referenced by keyType::swap(), and wordRe::swap().

|
inline |
|
inlinenoexcept |
True if string contains given character (cf. C++23).
Definition at line 412 of file string.H.
Referenced by Foam::checkFormatName(), dictionary::csearchScoped(), argList::displayDoc(), fileOperation::getGlobalIORanks(), Foam::getStopAction(), fileName::has_path(), dlLibraryTable::push_back(), ensightSurfaceReader::readCase(), ensightSurfaceReader::readGeometry(), ensightSurfaceReader::readGeometryHeader(), solutionControl::storePrevIter(), and exprString::valid().

|
inlinenoexcept |
|
inline |
|
inline |
True if string starts with given character (cf. C++20).
Definition at line 436 of file string.H.
Referenced by ensightSurfaceReader::checkSection(), argList::displayDoc(), Foam::dlOpen(), Foam::fieldTypes::is_area(), Foam::fieldTypes::is_area_internal(), Foam::fieldTypes::is_internal(), Foam::fieldTypes::is_point(), Foam::fieldTypes::is_surface(), Foam::fieldTypes::is_volume(), argList::parse(), fileOperation::processorsPath(), ABAQUSCore::readHelper::read(), ensightSurfaceReader::readCase(), and startsWith().

|
inline |
|
inline |
|
inline |
True if string ends with given character (cf. C++20).
Definition at line 461 of file string.H.
Referenced by endsWith(), Foam::fieldTypes::is_area(), Foam::fieldTypes::is_area_internal(), Foam::fieldTypes::is_basic(), Foam::fieldTypes::is_internal(), Foam::fieldTypes::is_point(), Foam::fieldTypes::is_surface(), and Foam::fieldTypes::is_volume().

|
inline |
|
inline |
| 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 94 of file string.C.
References Foam::stringOps::count().

|
inline |
Deprecated(2019-11).
Definition at line 496 of file string.H.
References s(), and starts_with().

|
inline |
Deprecated(2019-11).
Definition at line 503 of file string.H.
References ends_with(), and s().

|
inline |
Deprecated(2019-11).
Definition at line 510 of file string.H.
References removeEnd().

|
static |
|
static |
An empty string.
Definition at line 203 of file string.H.
Referenced by ABAQUSCore::readHelper::addNewElset(), genericRagelLemonDriver::clear(), argList::printMan(), Foam::printManOption(), Foam::printManOption(), Foam::printOption(), Foam::printOption(), argList::printUsage(), token::stringToken(), conformalVoronoiMesh::timeCheck(), and conformalVoronoiMesh::timeCheck().