nCine  2025.04.r498-9d36345
A cross-platform 2D game engine
Classes | Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
nctl::String Class Reference

A basic string class made of chars. More...

#include <String.h>

Public Types

using Iterator = StringIterator< false >
 Iterator type.
 
using ConstIterator = StringIterator< true >
 Constant iterator type.
 
using ReverseIterator = nctl::ReverseIterator< Iterator >
 Reverse iterator type.
 
using ConstReverseIterator = nctl::ReverseIterator< ConstIterator >
 Reverse constant iterator type.
 

Public Member Functions

 String ()
 Default constructor.
 
 String (unsigned int capacity)
 Constructs an empty string with explicit size.
 
 String (StringMode mode)
 Constructs an empty string with the option for it to be fixed.
 
 String (unsigned int capacity, StringMode mode)
 Constructs an empty string with explicit size and the option for it to be fixed.
 
 String (const char *cString)
 Constructs a string object from a C string.
 
 String (const char *cString, StringMode mode)
 Constructs a string object from a C string with the option for it to be fixed.
 
 String (const String &other)
 Copy constructor.
 
 String (String &&other)
 Move constructor.
 
Stringoperator= (const String &other)
 Assignment operator (it might extend or truncate the original text) More...
 
Stringoperator= (String &&other)
 Move assignment operator.
 
Stringoperator= (const char *cString)
 Assigns a constant C string to the string object.
 
void swap (String &first, String &second)
 Swaps two strings without copying their data.
 
Iterator begin ()
 Returns an iterator to the first character.
 
ReverseIterator rBegin ()
 Returns a reverse iterator to the last character.
 
Iterator end ()
 Returns an iterator to the termination character.
 
ReverseIterator rEnd ()
 Returns a reverse iterator to the byte preceding the first character.
 
ConstIterator begin () const
 Returns a constant iterator to the first character.
 
ConstReverseIterator rBegin () const
 Returns a constant reverse iterator to the last character.
 
ConstIterator end () const
 Returns a constant iterator to the termination character.
 
ConstReverseIterator rEnd () const
 Returns a constant reverse iterator to the byte preceding the first character.
 
ConstIterator cBegin () const
 Returns a constant iterator to the first character.
 
ConstReverseIterator crBegin () const
 Returns a constant reverse iterator to the last character.
 
ConstIterator cEnd () const
 Returns a constant iterator to the termination character.
 
ConstReverseIterator crEnd () const
 Returns a constant reverse iterator to the byte preceding the first character.
 
bool isEmpty () const
 Returns true if the string is empty.
 
unsigned int length () const
 Returns the string length.
 
unsigned int capacity () const
 Returns the string capacity.
 
unsigned int setLength (unsigned int newLength)
 Sets the string length. More...
 
void setCapacity (unsigned int newCapacity)
 Sets a new capacity for the string (can be bigger or smaller than the current one)
 
void shrinkToFit ()
 Decreases the capacity to match the current length of the string.
 
void clear ()
 Clears the string. More...
 
char * data ()
 Returns a pointer to the internal array.
 
const char * data () const
 Returns a constant pointer to the internal array.
 
unsigned int replace (const String &source, unsigned int srcChar, unsigned int numChar, unsigned int destChar)
 Replaces characters from somewhere in the other string to somewhere in this one (no truncation) More...
 
unsigned int replace (const char *source, unsigned int numChar, unsigned int destChar)
 Replaces characters from a C string to somewhere in this one (no truncation)
 
unsigned int assign (const String &source, unsigned int srcChar, unsigned int numChar)
 Copies characters from somewhere in the other string to the beginning of this one.
 
unsigned int assign (const String &source)
 Copies all characters from the other string to the beginning of this one.
 
unsigned int assign (const char *source, unsigned int numChar)
 Copies characters from a C string to the beginning of this one.
 
unsigned int copy (char *dest, unsigned int srcChar, unsigned int numChar) const
 Copies characters from somewhere in this string to a C string.
 
unsigned int copy (char *dest) const
 Copies all characters from this string to a C string.
 
unsigned int append (const String &other)
 Appends all the characters from the other string to the end of this one.
 
unsigned int append (const char *cString)
 Appends all the characters from the C string to the end of this one.
 
int compare (const String &other) const
 Compares the string with another one in lexicographical order.
 
int compare (const char *cString) const
 Compares the string with a constant C string in lexicographical order.
 
int findFirstChar (char c) const
 Finds the first occurrence of a character.
 
int findLastChar (char c) const
 Finds the last occurrence of a character.
 
int findFirstCharAfterIndex (char c, unsigned int index) const
 Finds the first occurrence of a character after the character at the index.
 
int find (const String &other) const
 Finds the first occurrence of the given string.
 
int find (const char *cString) const
 Finds the first occurrence of the given constant C string.
 
Stringformat (const char *fmt,...)
 Replaces the string with the formatted result.
 
StringformatAppend (const char *fmt,...)
 Append the formatted result to the string.
 
Stringoperator+= (const String &other)
 Appends another string to this one.
 
Stringoperator+= (const char *cString)
 Appends a constant C string to the string object.
 
String operator+ (const String &other) const
 Concatenate two strings together to create a third one.
 
String operator+ (const char *cString) const
 Concatenates a string with a constant C string to create a third one.
 
bool operator== (const String &other) const
 
bool operator!= (const String &other) const
 
bool operator> (const String &other) const
 
bool operator< (const String &other) const
 
bool operator>= (const String &other) const
 
bool operator<= (const String &other) const
 
bool operator== (const char *cString) const
 
bool operator!= (const char *cString) const
 
bool operator> (const char *cString) const
 
bool operator< (const char *cString) const
 
bool operator>= (const char *cString) const
 
bool operator<= (const char *cString) const
 
const char & at (unsigned int index) const
 Read-only access to the specified element (with bounds checking)
 
char & at (unsigned int index)
 Access to the specified element (with bounds checking)
 
const char & operator[] (unsigned int index) const
 Read-only subscript operator.
 
char & operator[] (unsigned int index)
 Subscript operator.
 
int utf8ToCodePoint (unsigned int position, unsigned int &codePoint, unsigned int *codeUnits) const
 Retrieves the Unicode code point and the UTF-8 code units from the UTF-8 substring starting at the specified position. More...
 
int utf8ToCodePoint (unsigned int position, unsigned int &codePoint) const
 Retrieves the Unicode code point from the UTF-8 substring starting at the specified position. More...
 

Static Public Attributes

static const unsigned int MaxCStringLength = 512 - 1
 Maximum length when creating an object from C-style strings.
 

Friends

DLL_PUBLIC String operator+ (const char *cString, const String &string)
 Friend operator to concatenate a constant C string with a string to create a third one.
 
bool operator== (const char *cString, String string)
 
bool operator!= (const char *cString, String string)
 
bool operator> (const char *cString, String string)
 
bool operator< (const char *cString, String string)
 
bool operator>= (const char *cString, String string)
 
bool operator<= (const char *cString, String string)
 

Detailed Description

A basic string class made of chars.

Member Function Documentation

◆ clear()

void nctl::String::clear ( )

Clears the string.

Note
Length will be reset to zero but capacity remains unmodified.

◆ operator=()

String & nctl::String::operator= ( const String other)

Assignment operator (it might extend or truncate the original text)

Note
Not implemented with the copy-and-swap idiom because it has to copy data.

◆ replace()

unsigned int nctl::String::replace ( const String source,
unsigned int  srcChar,
unsigned int  numChar,
unsigned int  destChar 
)

Replaces characters from somewhere in the other string to somewhere in this one (no truncation)

The method returns the number of characters copied, to allow truncation.

◆ setLength()

unsigned int nctl::String::setLength ( unsigned int  newLength)

Sets the string length.

The method is useful to update the string length after writing into it through the data() pointer.

◆ utf8ToCodePoint() [1/2]

int nctl::String::utf8ToCodePoint ( unsigned int  position,
unsigned int &  codePoint 
) const

Retrieves the Unicode code point from the UTF-8 substring starting at the specified position.

Returns
The number of code units used by UTF-8 to encode the Unicode code point

◆ utf8ToCodePoint() [2/2]

int nctl::String::utf8ToCodePoint ( unsigned int  position,
unsigned int &  codePoint,
unsigned int *  codeUnits 
) const

Retrieves the Unicode code point and the UTF-8 code units from the UTF-8 substring starting at the specified position.

Returns
The number of code units used by UTF-8 to encode the Unicode code point

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