#include <string.h>
Class to store 8 bit strings. The CString stores 8 bit characters. Any characters are legal, including 0C (for example CString("\0\0\0\0", 4) will result in a CString with length 4). CStrings are reference-counted objects. This means that as long as you copy and do not modify strings they are just referenced. The first modification breaks the link and it becomes a unique new object. For error handling see String.
Public Types | |
using | CharType = CStringInterface::CharType |
using | ConstIterator = BaseIterator< const CString, false > |
using | Iterator = ConstIterator |
using | ValueType = Char |
Public Member Functions | |
MAXON_DEFAULT_REFERENCE_CONSTRUCTORS (CString, Reference) | |
CString (const Char *str, Int count=-1) | |
CString (Int count, Char fillChar) | |
CString (const Block< const Char > &str) | |
CString (const String &str, const StringEncodingRef &stringEncoding=GetUtf8DefaultEncoder()) | |
Char | operator[] (Int pos) const |
MAXON_ATTRIBUTE_FORCE_INLINE CStringInterface::CharPtr | operator[] (Int position) |
ConstIterator | Begin () const |
ConstIterator | End () const |
Bool | IsEmpty () const |
Bool | IsPopulated () const |
CString & | operator+= (const CString &str) |
operator const Char * () const | |
operator Block< const Char > () const | |
Block< const Char > | ToBlock () const |
Static Public Member Functions | |
static const CString & | GetLineEnd () |
Private Member Functions | |
void | operator-> () const |
using CharType = CStringInterface::CharType |
using ConstIterator = BaseIterator<const CString, false> |
using Iterator = ConstIterator |
Constructor for Char array. If you have static Char strings use "..."_cs instead.
[in] | str | C string block. |
[in] | count | Number of characters, -1 to auto detect the length of the string (search for the first 0). |
Constructor to create a string with a specific length and a default character.
[in] | count | Number of characters of the new string. |
[in] | fillChar | Character to fill the string with. |
Constructor from a Char Block. If you have static strings use "..."_cs instead.
[in] | str | Char block, for example a BaseArray<Char>. |
|
explicit |
Constructor to create a CString from a String. The lower byte of each character will be copied, whereas the upper byte will be discarded.
[in] | str | Unicode string. |
[in] | stringEncoding | Encoding for the string. By default utf8 is selected. If a nullptr is passed the data is truncated to Char and no conversion takes place. |
MAXON_DEFAULT_REFERENCE_CONSTRUCTORS | ( | CString | , |
Reference | |||
) |
Index operator to access single characters of the string.
[in] | pos | Position within the string the first character starts with an index of 0. If the position is out of boundaries 0 will be returned. |
MAXON_ATTRIBUTE_FORCE_INLINE CStringInterface::CharPtr operator[] | ( | Int | position | ) |
Index operator to access single characters of the string.
[in] | position | Position within the string the first character starts with an index of 0. if the position is out of boundaries no changes will be made. |
ConstIterator Begin | ( | ) | const |
ConstIterator End | ( | ) | const |
Bool IsEmpty | ( | ) | const |
Returns if the string length is zero.
Bool IsPopulated | ( | ) | const |
Returns if the string contains any characters.
operator const Char * | ( | ) | const |
Conversion to const Char*, returns the pointer to a null-terminated C string.
|
static |
Returns a string with the platform specific line ending.
|
private |