71 #ifndef __GXX_EXPERIMENTAL_CXX0X__ 72 #define __GXX_EXPERIMENTAL_CXX0X__ 91 class __FlashStringHelper;
102 #define FPSTR(pstr_pointer) reinterpret_cast<flash_string_t>(pstr_pointer) 113 #define F(string_literal) String(FPSTR(PSTR_COUNTED(string_literal)), sizeof(string_literal) - 1) 141 using StringIfHelperType = void (
String::*)()
const;
142 void StringIfHelper()
const 186 #ifdef __GXX_EXPERIMENTAL_CXX0X__ 194 explicit String(
unsigned char,
unsigned char base = 10);
195 explicit String(
int,
unsigned char base = 10);
196 explicit String(
unsigned int,
unsigned char base = 10);
197 explicit String(
long,
unsigned char base = 10);
198 explicit String(
long long,
unsigned char base = 10);
199 explicit String(
unsigned long,
unsigned char base = 10);
200 explicit String(
unsigned long long,
unsigned char base = 10);
201 explicit String(
float,
unsigned char decimalPlaces = 2);
202 explicit String(
double,
unsigned char decimalPlaces = 2);
296 #ifdef __GXX_EXPERIMENTAL_CXX0X__ 322 bool concat(
const char* cstr);
323 bool concat(
const char* cstr,
size_t length);
328 bool concat(
unsigned char num);
330 bool concat(
unsigned int num);
332 bool concat(
long long num);
333 bool concat(
unsigned long num);
334 bool concat(
unsigned long long num);
431 operator StringIfHelperType()
const 433 return isNull() ? 0 : &String::StringIfHelper;
446 int compareTo(
const char* cstr,
size_t length)
const;
466 bool equals(
const char* cstr)
const;
467 bool equals(
const char* cstr,
size_t length)
const;
470 return fstr.
equals(*
this);
626 size_t getBytes(
unsigned char* buf,
size_t bufsize,
size_t index = 0)
const;
632 void toCharArray(
char* buf,
size_t bufsize,
size_t index = 0)
const 634 getBytes((
unsigned char*)buf, bufsize, index);
685 int indexOf(
char ch,
size_t fromIndex = 0)
const;
686 int indexOf(
const char* s2_buf,
size_t fromIndex,
size_t s2_len)
const;
687 int indexOf(
const char* s2_buf,
size_t fromIndex = 0)
const 689 return indexOf(s2_buf, fromIndex, strlen(s2_buf));
711 int lastIndexOf(
const char* s2_buf,
size_t fromIndex,
size_t s2_len)
const;
759 bool replace(
const char* find_buf,
size_t find_len,
const char* replace_buf,
size_t replace_len);
774 void remove(
size_t index)
776 remove(index, SIZE_MAX);
778 void remove(
size_t index,
size_t count);
797 long toInt(
void)
const;
821 static_assert(STRING_OBJECT_SIZE ==
sizeof(
SsoBuf),
"SSO Buffer alignment problem");
822 static_assert(STRING_OBJECT_SIZE >=
sizeof(
PtrBuf),
"STRING_OBJECT_SIZE too small");
823 static_assert(STRING_OBJECT_SIZE <= 128,
"STRING_OBJECT_SIZE too large (max. 128)");
824 static_assert(STRING_OBJECT_SIZE % 4 == 0,
"STRING_OBJECT_SIZE must be a multiple of 4");
869 String&
copy(
const char* cstr,
size_t length);
871 #ifdef __GXX_EXPERIMENTAL_CXX0X__ 921 #endif // __cplusplus bool equalsIgnoreCase(const FlashString &fstr) const
Definition: WString.h:544
int lastIndexOf(char ch) const
bool operator==(const String &rhs) const
Definition: WString.h:479
bool operator!=(const char *cstr) const
Definition: WString.h:502
bool operator==(const char *cstr) const
Definition: WString.h:483
bool operator<=(const String &rhs) const
Definition: WString.h:520
bool operator>=(const String &rhs) const
Definition: WString.h:524
String(flash_string_t pstr, size_t length)
Definition: WString.h:177
String & operator+=(float num)
Definition: WString.h:402
bool concat(char c)
Definition: WString.h:324
bool startsWith(const String &prefix) const
Compare the start of a String Comparison is case-sensitive, must match exactly.
Definition: WString.h:556
#define __forceinline
Definition: sming_attr.h:13
StringSumHelper(unsigned long long num)
Definition: WString.h:908
String & operator=(String &&rval) noexcept
Definition: WString.h:297
StringSumHelper(int num)
Definition: WString.h:893
static const String empty
An empty string evaluates to true.
Definition: WString.h:149
String & operator+=(unsigned char num)
Definition: WString.h:367
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:641
size_t getBytes(unsigned char *buf, size_t bufsize, size_t index=0) const
Read contents of a String into a buffer.
String & operator+=(long long num)
Definition: WString.h:387
static constexpr size_t SSO_CAPACITY
Max chars. (excluding NUL terminator) we can store in SSO mode.
Definition: WString.h:801
bool setBuffer(const Buffer &buffer)
Set String content using move semantics from external memory buffer.
#define str(s)
Definition: testrunner.h:124
String(flash_string_t pstr)
Definition: WString.h:181
String substring(size_t from) const
Definition: WString.h:737
String & operator+=(const String &rhs)
Definition: WString.h:347
void toUpperCase(void)
Convert the entire String content to upper case.
StringSumHelper(long num)
Definition: WString.h:899
void setlen(size_t len)
Definition: WString.h:855
StringSumHelper(long long num)
Definition: WString.h:902
StringSumHelper(const char *p)
Definition: WString.h:884
size_t capacity() const
Definition: WString.h:849
StringSumHelper(unsigned long num)
Definition: WString.h:905
const char * begin() const
Definition: WString.h:664
String & operator+=(const char *cstr)
Definition: WString.h:357
const char * cbuffer() const
Definition: WString.h:843
Used when contents allocated on heap.
Definition: WString.h:805
String substring(size_t from, size_t to) const
The String class.
Definition: WString.h:136
String & operator=(const String &rhs)
bool equalsIgnoreCase(const WString &str) const
int indexOf(char ch, size_t fromIndex=0) const
int indexOf(const char *s2_buf, size_t fromIndex=0) const
Definition: WString.h:687
String & operator+=(double num)
Definition: WString.h:407
char * begin()
Get a modifiable pointer to String content.
Definition: WString.h:650
StringSumHelper(char c)
Definition: WString.h:887
String(const String &str)
Definition: WString.h:173
size_t length
Length of content, MUST be < size.
Definition: WString.h:248
float toFloat(void) const
bool equals(const char *cstr, size_t len=0) const
Check for equality with a C-string.
bool operator>(const String &rhs) const
Definition: WString.h:516
char charAt(size_t index) const
Obtain the character at the given index.
Definition: WString.h:594
StringSumHelper(float num)
Definition: WString.h:911
bool operator!=(const String &rhs) const
Definition: WString.h:498
static const String nullstr
A null string evaluates to false.
Definition: WString.h:148
const __FlashStringHelper * flash_string_t
Provides a strongly-typed pointer to allow safe implicit operation using String class methods...
Definition: WString.h:96
bool endsWith(char suffix) const
Compare the end of a String.
int compareTo(const String &s) const
Definition: WString.h:447
friend StringSumHelper & operator+(const StringSumHelper &lhs, const String &rhs)
String & operator+=(unsigned long long num)
Definition: WString.h:397
char * buffer()
Definition: WString.h:837
String & operator+=(unsigned long num)
Definition: WString.h:392
String(String &&rval) noexcept
Definition: WString.h:187
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:237
bool setLength(size_t length)
set the string length accordingly, expanding if necessary
StringSumHelper(const String &s)
Definition: WString.h:881
size_t size
Size of memory allocation.
Definition: WString.h:247
Used with setBuffer and getBuffer methods.
Definition: WString.h:245
String & operator+=(long num)
Definition: WString.h:382
bool operator<(const String &rhs) const
Definition: WString.h:512
String()
Default constructor.
Definition: WString.h:155
unsigned char set
true for SSO mode
Definition: WString.h:814
bool equalsIgnoreCase(const String &s2) const
Definition: WString.h:540
describes a counted string stored in flash memory
Definition: String.hpp:173
void toCharArray(char *buf, size_t bufsize, size_t index=0) const
Read contents of String into a buffer.
Definition: WString.h:632
void setCharAt(size_t index, char c)
Sets the character at a given index.
char * buffer
Definition: WString.h:806
String & operator+=(int num)
Definition: WString.h:372
String(const char *cstr, size_t length)
Definition: WString.h:168
PtrBuf ptr
Definition: WString.h:817
Definition: WString.h:878
String & operator+=(unsigned int num)
Definition: WString.h:377
Buffer getBuffer()
Get String content using move semantics.
void toLowerCase(void)
Convert the entire String content to lower case.
unsigned char len
Definition: WString.h:813
bool equals(const FlashString &fstr) const
Definition: WString.h:468
char operator[](size_t index) const
String & operator+=(const FlashString &rhs)
Definition: WString.h:352
void trim(void)
Remove all leading and trailing whitespace characters from the String.
bool reserve(size_t size)
Pre-allocate String memory.
char * data
Allocated using malloc.
Definition: WString.h:246
bool operator==(const FlashString &fstr) const
Definition: WString.h:487
char buffer[SSO_CAPACITY+1]
Definition: WString.h:812
bool equals(const String &s) const
Definition: WString.h:462
StringSumHelper(unsigned char num)
Definition: WString.h:890
bool equalsIgnoreCase(const char *cstr) const
int indexOf(const String &s2, size_t fromIndex=0) const
Definition: WString.h:691
SsoBuf sso
Definition: WString.h:818
StringSumHelper(unsigned int num)
Definition: WString.h:896
bool isNull() const
Definition: WString.h:831
size_t len
Definition: WString.h:807
void setString(const char *cstr)
size_t capacity
Definition: WString.h:808
const char * end() const
Definition: WString.h:668
char * end()
Get a modifiable pointer to one-past the end of the String.
Definition: WString.h:660
String & copy(const char *cstr, size_t length)
void replace(char find, char replace)
String & operator+=(char c)
Definition: WString.h:362
Definition: WString.h:811
StringSumHelper(double num)
Definition: WString.h:914
bool concat(const String &str)
Definition: WString.h:317
~String(void)
Definition: WString.h:205
int compareTo(const char *cstr, size_t length) const