arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Str Class Reference

Str which keeps the data on the heap. We grow the allocated memory only if the copy source is not fitting. More...

#include <Str.h>

Inheritance diagram for Str:
StrView

Public Member Functions

 Str ()=default
 
 Str (const char *str)
 
 Str (int initialAllocatedLength)
 
 Str (Str &&obj)
 Move constructor.
 
 Str (Str &source)
 Copy constructor.
 
 Str (StrView &source)
 Convert StrView to Str.
 
 ~Str ()
 Destructor.
 
virtual void add (const char *append)
 adds a string
 
virtual void add (const char c)
 adds a character
 
virtual void add (double value, int precision=2, int withd=0)
 adds a double value
 
virtual void add (int value)
 adds a int value
 
void allocate (int len=-1)
 
virtual const charc_str ()
 provides the string value as const char*
 
size_t capacity ()
 
void clear () override
 clears and resizes to 0
 
void clear (bool resize)
 
virtual bool contains (const char *str)
 checks if the string contains a substring
 
bool containsNumber ()
 
void copyFrom (const char *source, int len, int maxlen=0)
 assigns a memory buffer
 
virtual int count (char c, int startPos)
 count number of indicated characters as position
 
virtual bool endsWith (const char *str)
 checks if the string ends with the indicated substring
 
virtual bool endsWithIgnoreCase (const char *str)
 checks if the string ends with the indicated substring
 
virtual bool equals (const char *str)
 checks if the string equals indicated parameter string
 
virtual bool equalsIgnoreCase (const char *alt)
 Compares the string ignoring the case.
 
virtual int indexOf (const char *cont, int start=0)
 
virtual int indexOf (const char c, int start=0)
 
virtual void insert (int pos, const char *str)
 inserts a substring into the string
 
bool isConst () override
 checks if the string is a constant that must not be changed
 
virtual bool isEmpty ()
 checks if the string is empty
 
bool isInteger ()
 Returns true if the string is an integer.
 
bool isNumber ()
 
bool isOnHeap () override
 checks if the string is on the heap
 
virtual int lastIndexOf (const char *cont)
 provides the position of the last occurrence of the indicated substring
 
virtual int length ()
 
virtual void ltrim ()
 remove leading spaces
 
virtual bool matches (const char *pattern)
 
virtual int maxLength ()
 provides the maximum length of the string
 
virtual int nIndexOf (const char *cont, int n)
 searches for the nth occurence of the indicated character
 
virtual int nIndexOf (const char c, int n)
 searches for the nth occurence of the indicated character
 
int numberOfDecimals ()
 Determines the number of decimals in the number string.
 
virtual bool operator!= (const char *alt) const
 checks if the indicated string is different from the current string
 
virtual bool operator!= (const StrView &alt) const
 checks if the indicated string is different from the current string
 
virtual void operator+= (const char *str)
 adds a substring at the end of the string
 
virtual void operator+= (const char value)
 adds a character
 
virtual void operator+= (double value)
 adds a double at the end of the string
 
virtual void operator+= (int value)
 adds a int at the end of the string
 
virtual void operator<< (int n)
 shift characters to the right -> we just move the pointer
 
void operator= (char *str) override
 we can assign a char*
 
void operator= (const char *str) override
 we can assign a const char*
 
void operator= (double v) override
 we can assign a double
 
void operator= (int v) override
 we can assign an int
 
Stroperator= (Str &&obj)
 Move assignment.
 
Stroperator= (Str &obj)
 Copy assingment.
 
virtual bool operator== (const char *alt) const
 checks if the indicated string is equal to the current string
 
virtual bool operator== (const StrView &alt) const
 checks if the indicated string is equal to the current string
 
virtual char operator[] (int index)
 
virtual void remove (const char *toRemove)
 removes the indicated substring from the string
 
virtual void removeAll (const char *toRemove)
 removes the indicated substring from the string
 
virtual bool replace (const char *toReplace, const char *replaced)
 Replaces the first instance of toReplace with replaced.
 
virtual bool replaceAll (const char *toReplace, const char *replaced)
 Replaces all instances of toReplace with replaced.
 
virtual void rtrim ()
 remove trailing spaces
 
virtual void set (char chars[], int maxlen, int len=0, bool isConst=false)
 assigns a memory buffer
 
virtual void set (const char *alt)
 assigs a value
 
virtual void set (const char c)
 
virtual void set (const StrView &alt)
 assigs from another Str value
 
virtual void set (double value, int precision=2, int withd=0)
 
virtual void set (int value)
 
void setCapacity (size_t newLen)
 
void setChars (char c, int len)
 Fills the string with len chars.
 
virtual void setLength (int len, bool addZero=true)
 limits the length of the string (by adding a delimiting 0)
 
virtual void setLengthUndo ()
 undo the last setLength call
 
virtual bool startsWith (const char *str)
 checks if the string starts with the indicated substring
 
virtual void substring (const char *from, int start, int end)
 copies a substring into the current string
 
virtual void substring (StrView &from, int start, int end)
 copies a substring into the current string
 
void swap (Str &other)
 
virtual void swap (StrView &str)
 
double toDouble ()
 Converts the string to a double.
 
float toFloat ()
 Converts the string to a float.
 
int toInt ()
 Converts the string to an int.
 
long toLong ()
 Converts the string to an long.
 
void toLowerCase ()
 Converts the string to lowercase letters.
 
void toUpperCase ()
 Converts the string to uppercase letters.
 
virtual void trim ()
 remove leading and traling spaces
 
void urlDecode ()
 decodes a url encoded string
 
void urlEncode ()
 url encode the string
 

Static Public Member Functions

static const chartoBinary (void const *const ptr, size_t const size)
 provides a binary string represntation
 

Protected Member Functions

char charToInt (char ch)
 
bool grow (int newMaxLen) override
 only supported in subclasses
 
Strmove (Str &other)
 
char strToBin (char *pString)
 
void urlEncodeChar (char c, char *result, int maxLen)
 

Static Protected Member Functions

static charfloatToString (char *outstr, double val, int precision, int widthp)
 
static charitoa (int n, char s[])
 
static void reverse (char s[])
 
static int strncmp_i (const char *s1, const char *s2, int n)
 

Protected Attributes

charchars = nullptr
 
bool is_const = false
 
int len = 0
 
int maxlen = 0
 
char savedChar
 
int savedLen = -1
 
Vector< charvector
 

Detailed Description

Str which keeps the data on the heap. We grow the allocated memory only if the copy source is not fitting.

While it should be avoided to use a lot of heap allocatioins in embedded devices it is sometimes more convinent to allocate a string once on the heap and have the insurance that it might grow if we need to process an unexpected size.

We also need to use this if we want to manage a vecor of strings.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ Str() [1/6]

Str ( )
default

◆ Str() [2/6]

Str ( int  initialAllocatedLength)
inline

◆ Str() [3/6]

Str ( const char str)
inline

◆ Str() [4/6]

Str ( StrView source)
inline

Convert StrView to Str.

◆ Str() [5/6]

Str ( Str source)
inline

Copy constructor.

◆ Str() [6/6]

Str ( Str &&  obj)
inline

Move constructor.

◆ ~Str()

~Str ( )
inline

Destructor.

Member Function Documentation

◆ add() [1/4]

virtual void add ( const char append)
inlinevirtualinherited

adds a string

◆ add() [2/4]

virtual void add ( const char  c)
inlinevirtualinherited

adds a character

◆ add() [3/4]

virtual void add ( double  value,
int  precision = 2,
int  withd = 0 
)
inlinevirtualinherited

adds a double value

◆ add() [4/4]

virtual void add ( int  value)
inlinevirtualinherited

adds a int value

◆ allocate()

void allocate ( int  len = -1)
inline

◆ c_str()

virtual const char * c_str ( )
inlinevirtualinherited

provides the string value as const char*

◆ capacity()

size_t capacity ( )
inline

◆ charToInt()

char charToInt ( char  ch)
inlineprotected

◆ clear() [1/2]

void clear ( )
inlineoverridevirtual

clears and resizes to 0

Reimplemented from StrView.

◆ clear() [2/2]

void clear ( bool  resize)
inline

◆ contains()

virtual bool contains ( const char str)
inlinevirtualinherited

checks if the string contains a substring

◆ containsNumber()

bool containsNumber ( )
inlineinherited

◆ copyFrom()

void copyFrom ( const char source,
int  len,
int  maxlen = 0 
)
inline

assigns a memory buffer

◆ count()

virtual int count ( char  c,
int  startPos 
)
inlinevirtualinherited

count number of indicated characters as position

◆ endsWith()

virtual bool endsWith ( const char str)
inlinevirtualinherited

checks if the string ends with the indicated substring

◆ endsWithIgnoreCase()

virtual bool endsWithIgnoreCase ( const char str)
inlinevirtualinherited

checks if the string ends with the indicated substring

◆ equals()

virtual bool equals ( const char str)
inlinevirtualinherited

checks if the string equals indicated parameter string

◆ equalsIgnoreCase()

virtual bool equalsIgnoreCase ( const char alt)
inlinevirtualinherited

Compares the string ignoring the case.

◆ floatToString()

static char * floatToString ( char outstr,
double  val,
int  precision,
int  widthp 
)
inlinestaticprotectedinherited

compute the rounding factor and fractional multiplier

print the decimal point

generate space padding

◆ grow()

bool grow ( int  newMaxLen)
inlineoverrideprotectedvirtual

only supported in subclasses

Reimplemented from StrView.

◆ indexOf() [1/2]

virtual int indexOf ( const char cont,
int  start = 0 
)
inlinevirtualinherited

provides the position of the the indicated substring after the indicated start position

◆ indexOf() [2/2]

virtual int indexOf ( const char  c,
int  start = 0 
)
inlinevirtualinherited

provides the position of the the indicated character after the indicated start position

◆ insert()

virtual void insert ( int  pos,
const char str 
)
inlinevirtualinherited

inserts a substring into the string

◆ isConst()

bool isConst ( )
inlineoverridevirtual

checks if the string is a constant that must not be changed

Reimplemented from StrView.

◆ isEmpty()

virtual bool isEmpty ( )
inlinevirtualinherited

checks if the string is empty

◆ isInteger()

bool isInteger ( )
inlineinherited

Returns true if the string is an integer.

◆ isNumber()

bool isNumber ( )
inlineinherited

◆ isOnHeap()

bool isOnHeap ( )
inlineoverridevirtual

checks if the string is on the heap

Reimplemented from StrView.

◆ itoa()

static char * itoa ( int  n,
char  s[] 
)
inlinestaticprotectedinherited

◆ lastIndexOf()

virtual int lastIndexOf ( const char cont)
inlinevirtualinherited

provides the position of the last occurrence of the indicated substring

◆ length()

virtual int length ( )
inlinevirtualinherited

provides the current length (filled with characters) of the string - excluding the terminating 0

◆ ltrim()

virtual void ltrim ( )
inlinevirtualinherited

remove leading spaces

◆ matches()

virtual bool matches ( const char pattern)
inlinevirtualinherited

file matching supporting * and ? - replacing regex which is not supported in all environments

returns 1 (true) if there is a match returns 0 if the pattern is not whitin the line

the line is ended but char was expected

end of mask

if the line also ends here then the pattern match

try to restart the mask on the rest

◆ maxLength()

virtual int maxLength ( )
inlinevirtualinherited

provides the maximum length of the string

◆ move()

Str & move ( Str other)
inlineprotected

◆ nIndexOf() [1/2]

virtual int nIndexOf ( const char cont,
int  n 
)
inlinevirtualinherited

searches for the nth occurence of the indicated character

◆ nIndexOf() [2/2]

virtual int nIndexOf ( const char  c,
int  n 
)
inlinevirtualinherited

searches for the nth occurence of the indicated character

◆ numberOfDecimals()

int numberOfDecimals ( )
inlineinherited

Determines the number of decimals in the number string.

◆ operator!=() [1/2]

virtual bool operator!= ( const char alt) const
inlinevirtualinherited

checks if the indicated string is different from the current string

◆ operator!=() [2/2]

virtual bool operator!= ( const StrView alt) const
inlinevirtualinherited

checks if the indicated string is different from the current string

◆ operator+=() [1/4]

virtual void operator+= ( const char str)
inlinevirtualinherited

adds a substring at the end of the string

◆ operator+=() [2/4]

virtual void operator+= ( const char  value)
inlinevirtualinherited

adds a character

◆ operator+=() [3/4]

virtual void operator+= ( double  value)
inlinevirtualinherited

adds a double at the end of the string

◆ operator+=() [4/4]

virtual void operator+= ( int  value)
inlinevirtualinherited

adds a int at the end of the string

◆ operator<<()

virtual void operator<< ( int  n)
inlinevirtualinherited

shift characters to the right -> we just move the pointer

◆ operator=() [1/6]

void operator= ( char str)
inlineoverridevirtual

we can assign a char*

Reimplemented from StrView.

◆ operator=() [2/6]

void operator= ( const char str)
inlineoverridevirtual

we can assign a const char*

Reimplemented from StrView.

◆ operator=() [3/6]

void operator= ( double  val)
inlineoverridevirtual

we can assign a double

Reimplemented from StrView.

◆ operator=() [4/6]

void operator= ( int  value)
inlineoverridevirtual

we can assign an int

Reimplemented from StrView.

◆ operator=() [5/6]

Str & operator= ( Str &&  obj)
inline

Move assignment.

◆ operator=() [6/6]

Str & operator= ( Str obj)
inline

Copy assingment.

◆ operator==() [1/2]

virtual bool operator== ( const char alt) const
inlinevirtualinherited

checks if the indicated string is equal to the current string

◆ operator==() [2/2]

virtual bool operator== ( const StrView alt) const
inlinevirtualinherited

checks if the indicated string is equal to the current string

◆ operator[]()

virtual char operator[] ( int  index)
inlinevirtualinherited

◆ remove()

virtual void remove ( const char toRemove)
inlinevirtualinherited

removes the indicated substring from the string

◆ removeAll()

virtual void removeAll ( const char toRemove)
inlinevirtualinherited

removes the indicated substring from the string

◆ replace()

virtual bool replace ( const char toReplace,
const char replaced 
)
inlinevirtualinherited

Replaces the first instance of toReplace with replaced.

◆ replaceAll()

virtual bool replaceAll ( const char toReplace,
const char replaced 
)
inlinevirtualinherited

Replaces all instances of toReplace with replaced.

◆ reverse()

static void reverse ( char  s[])
inlinestaticprotectedinherited

◆ rtrim()

virtual void rtrim ( )
inlinevirtualinherited

remove trailing spaces

◆ set() [1/6]

virtual void set ( char  chars[],
int  maxlen,
int  len = 0,
bool  isConst = false 
)
inlinevirtualinherited

assigns a memory buffer

◆ set() [2/6]

virtual void set ( const char alt)
inlinevirtualinherited

assigs a value

if the Str is a const we replace the pointer

if the Str is an external buffer we need to copy

◆ set() [3/6]

virtual void set ( const char  c)
inlinevirtualinherited

◆ set() [4/6]

virtual void set ( const StrView alt)
inlinevirtualinherited

assigs from another Str value

if the Str is a const we replace the pointer

if the Str is an external buffer we need to copy

◆ set() [5/6]

virtual void set ( double  value,
int  precision = 2,
int  withd = 0 
)
inlinevirtualinherited

◆ set() [6/6]

virtual void set ( int  value)
inlinevirtualinherited

◆ setCapacity()

void setCapacity ( size_t  newLen)
inline

◆ setChars()

void setChars ( char  c,
int  len 
)
inline

Fills the string with len chars.

◆ setLength()

virtual void setLength ( int  len,
bool  addZero = true 
)
inlinevirtualinherited

limits the length of the string (by adding a delimiting 0)

◆ setLengthUndo()

virtual void setLengthUndo ( )
inlinevirtualinherited

undo the last setLength call

◆ startsWith()

virtual bool startsWith ( const char str)
inlinevirtualinherited

checks if the string starts with the indicated substring

◆ strncmp_i()

static int strncmp_i ( const char s1,
const char s2,
int  n 
)
inlinestaticprotectedinherited

◆ strToBin()

char strToBin ( char pString)
inlineprotected

◆ substring() [1/2]

virtual void substring ( const char from,
int  start,
int  end 
)
inlinevirtualinherited

copies a substring into the current string

◆ substring() [2/2]

virtual void substring ( StrView from,
int  start,
int  end 
)
inlinevirtualinherited

copies a substring into the current string

◆ swap() [1/2]

void swap ( Str other)
inline

◆ swap() [2/2]

virtual void swap ( StrView str)
inlinevirtualinherited

◆ toBinary()

static const char * toBinary ( void const *const  ptr,
size_t const  size 
)
inlinestaticinherited

provides a binary string represntation

◆ toDouble()

double toDouble ( )
inlineinherited

Converts the string to a double.

◆ toFloat()

float toFloat ( )
inlineinherited

Converts the string to a float.

◆ toInt()

int toInt ( )
inlineinherited

Converts the string to an int.

◆ toLong()

long toLong ( )
inlineinherited

Converts the string to an long.

◆ toLowerCase()

void toLowerCase ( )
inlineinherited

Converts the string to lowercase letters.

◆ toUpperCase()

void toUpperCase ( )
inlineinherited

Converts the string to uppercase letters.

◆ trim()

virtual void trim ( )
inlinevirtualinherited

remove leading and traling spaces

◆ urlDecode()

void urlDecode ( )
inline

decodes a url encoded string

◆ urlEncode()

void urlEncode ( )
inline

url encode the string

◆ urlEncodeChar()

void urlEncodeChar ( char  c,
char result,
int  maxLen 
)
inlineprotected

Member Data Documentation

◆ chars

char* chars = nullptr
protectedinherited

◆ is_const

bool is_const = false
protectedinherited

◆ len

int len = 0
protectedinherited

◆ maxlen

int maxlen = 0
protectedinherited

◆ savedChar

char savedChar
protectedinherited

◆ savedLen

int savedLen = -1
protectedinherited

◆ vector

Vector<char> vector
protected

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