#include <cstring.hpp>
This class specializes its base class String in that respect that the character strings represented are guaranteed to be zero-terminated.
Zero-terminated strings are widely used by programming language C and are often called "C-strings", what gave the class its name.
TChar | The character type. Alias names for specializations of this class using character types character, nchar, wchar, xchar, complementChar and strangeChar are provided in namespace aworx with type definitions CString, NCString, WCString, XCString, ComplementCString and StrangeCString. |
Definition at line 43 of file cstring.hpp.
Public Methods | |
Constructor And Assignment | |
constexpr | TCString () |
constexpr | TCString (const TChar *pBuffer, integer contentLength) |
template<typename TZTCharArray > | |
constexpr | TCString (const TTerminatable &src) |
template<typename TZTCharArray > | |
operator TZTCharArray () const | |
template<typename TZTCharArray > | |
operator TZTCharArray () const | |
Interface | |
TChar | operator[] (integer op) const |
template<Inclusion inclusion, bool TCheck = true> | |
integer | IndexOfAny (const TCString &needles, integer startIdx=0) const |
![]() | |
constexpr | TString () noexcept=default |
constexpr | TString (const TString &) noexcept=default |
constexpr | TString (TString &&) noexcept=default |
TString & | operator= (const TString &) noexcept=default |
TString & | operator= (TString &&) noexcept=default |
constexpr | TString (const TChar *pBuffer, integer pLength) noexcept |
template<typename TCharArray > | |
constexpr | TString (const TCharArray &src) |
template<typename TCharArray > | |
operator TCharArray () const | |
template<typename TCharArray > | |
operator TCharArray () const | |
template<bool TCheck = true> | |
ALIB_WARNINGS_IGNORE_IF_CONSTEXPR TString< TChar > | Substring (integer regionStart, integer regionLength=MAX_LEN) const |
constexpr const TChar * | Buffer () const |
constexpr integer | Length () const |
integer | WStringLength () const |
constexpr bool | IsNull () const |
constexpr bool | IsNotNull () const |
constexpr bool | IsEmpty () const |
constexpr bool | IsNotEmpty () const |
template<bool TCheck = true> | |
TChar | CharAt (integer idx) const |
template<bool TCheck = true> | |
TChar | CharAtStart () const |
template<bool TCheck = true> | |
TChar | CharAtEnd () const |
TChar | operator[] (integer idx) const |
std::size_t | Hashcode () const |
std::size_t | HashcodeIgnoreCase () const |
template<Case TSensitivity = Case::Sensitive> | |
bool | Equals (const TString< TChar > &rhs) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
int | CompareTo (const TString< TChar > &rhs) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
int | CompareTo (const TString &rhs, integer rhsRegionStart, integer rhsRegionLength=MAX_LEN) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
int | CompareTo (const TString &rhs, integer rhsRegionStart, integer rhsRegionLength, integer regionStart, integer regionLength=MAX_LEN) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
bool | ContainsAt (const TString &needle, integer pos) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
bool | StartsWith (const TString &needle) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
bool | EndsWith (const TString &needle) const |
template<bool TCheck = true> | |
integer | IndexOf (TChar needle, integer startIdx=0) const |
template<bool TCheck = true> | |
integer | IndexOf (TChar needle, integer regionStart, integer regionLength) const |
integer | IndexOfOrLength (TChar needle) const |
template<bool TCheck = true> | |
ALIB_WARNINGS_ALLOW_UNSAFE_BUFFER_USAGE integer | IndexOfOrLength (TChar needle, integer startIdx) const |
template<bool TCheck = true> | |
ALIB_WARNINGS_RESTORE integer | LastIndexOf (TChar needle, integer startIndex=MAX_LEN) const |
template<Inclusion TInclusion, bool TCheck = true> | |
integer | IndexOfAny (const TString &needles, integer startIdx=0) const |
template<Inclusion TInclusion, bool TCheck = true> | |
integer | LastIndexOfAny (const TString &needles, integer startIdx=MAX_LEN) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
integer | IndexOf (const TString &needle, integer startIdx=0) const |
template<bool TCheck = true> | |
integer | IndexOfFirstDifference (const TString &needle, Case sensitivity=Case::Sensitive, integer idx=0) const |
integer | IndexOfSegmentEnd (TChar opener, TChar closer, integer idx) const |
template<bool TCheck = true> | |
integer | CountChar (TChar needle, integer startPos=0) const |
template<bool TCheck = true> | |
integer | CountChar (TChar needle, TChar omit, integer startPos) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
integer | Count (const TString &needle, integer startPos=0) const |
template<bool TCheck = true, Case TSensitivity = Case::Sensitive> | |
integer | Count (const TString &needle, const TString &omit, integer startPos=0) const |
ALIB_API uint64_t | ParseDecDigits (integer startIdx=0, integer *newIdx=nullptr) const |
ALIB_API int64_t | ParseInt (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
int64_t | ParseInt (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
int64_t | ParseInt (integer *newIdx) const |
int64_t | ParseInt (integer startIdx, integer *newIdx) const |
ALIB_API uint64_t | ParseDec (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseDec (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseDec (integer *newIdx) const |
uint64_t | ParseDec (integer startIdx, integer *newIdx) const |
ALIB_API uint64_t | ParseBin (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseBin (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseBin (integer *newIdx) const |
uint64_t | ParseBin (integer startIdx, integer *newIdx) const |
ALIB_API uint64_t | ParseHex (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseHex (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseHex (integer *newIdx) const |
uint64_t | ParseHex (integer startIdx, integer *newIdx) const |
ALIB_API uint64_t | ParseOct (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseOct (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseOct (integer *newIdx) const |
uint64_t | ParseOct (integer startIdx, integer *newIdx) const |
ALIB_API double | ParseFloat (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
double | ParseFloat (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
double | ParseFloat (integer *newIdx) const |
double | ParseFloat (integer startIdx, integer *newIdx) const |
integer | CopyTo (TChar *dest) const |
bool | AdjustRegion (integer ®ionStart, integer ®ionLength) const |
ConstIterator | begin () const |
ConstIterator | cbegin () const |
ALIB_WARNINGS_ALLOW_UNSAFE_BUFFER_USAGE ConstIterator | end () const |
ConstIterator | cend () const |
ALIB_WARNINGS_RESTORE ConstReverseIterator | rbegin () const |
ConstReverseIterator | rend () const |
ConstReverseIterator | crbegin () const |
ConstReverseIterator | crend () const |
TString (ConstIterator &start, ConstIterator &end) | |
Additional Inherited Members | |
![]() | |
using | ConstIterator = TRandomAccessIterator< const TChar > |
using | ConstReverseIterator = std::reverse_iterator< ConstIterator > |
![]() | |
const TChar * | buffer |
integer | length |
![]() | |
template<Case TSensitivity = Case::Sensitive> | |
ALIB_API integer | indexOfString (const TString &needle, integer startIdx) const |
|
inlineconstexpr |
Default constructor creating a 6.1 Nulled Strings "nulled" c-string.
Definition at line 54 of file cstring.hpp.
Constructor accepting a pointer to a character array and a string length.
'\0'
character.pBuffer | The buffer to use. |
contentLength | The length of the content in the given buffer. |
Definition at line 77 of file cstring.hpp.
|
inlineconstexpr |
This templated constructor accepts various different kinds of source data. Unlike this documentation suggests, this constructor is internally implemented by a series of different constructors which are selected using template meta programming (i.e. std::enable_if
).
Together, the set of constructors provide maximum flexibility by allowing implicit construction with (and assignment of) any built-in or third-party character array type. Some of the constructors are defined using keyword explict
.
In debug-compilations a run-time assertion is raised if the provided buffer is not zero-terminated.
TZTCharArray | Type that comprises a zero-terminated character array. |
src | The source object. |
Returns the index of the first character which is included, respectively not included in a given set of characters.
This method searches forwards. For backwards search, see String::LastIndexOfAny.
myCString.TString::IndexOfAny<Inclusion::Include>( myString );
TCheck | Defaults to true which is the normal invocation mode. If <false> is added to the method name, no parameter checks are performed and the needles must not be empty. |
inclusion | Denotes whether the search returns the first index that holds a value that is included or that is not excluded in the set of needle characters. |
needles | Set of characters to be taken into account. |
startIdx | The index to start the search at. If the given value is less than 0 , it is set to 0 . If it exceeds the length of the string, the length of the string is returned. Defaults to 0 . |
-1
is returned. Definition at line 350 of file cstring.hpp.
|
inline |
Implicit cast operator to objects of type TZTCharArray.
This operator is available for all custom types that have an accordingly specialized version of TMP struct T_CharArray and/or T_ZTCharArray defined.
TZTCharArray | The custom type to implicitly convert this object to. |
Definition at line 134 of file cstring.hpp.
|
inlineexplicit |
Explicit cast operator to objects of type TZTCharArray.
This operator is available for all custom types that have an accordingly specialized version of TMP struct T_CharArray and/or T_ZTCharArray defined.
TZTCharArray | The custom type to explicitly convert this object to. |
Definition at line 153 of file cstring.hpp.
|
inline |
Reads a character at a given index.
Overrides String::operator[] to change the debug assertion to allow inclusion of the termination character.
op | The index of the character within this object's buffer. |
Definition at line 303 of file cstring.hpp.