29extern size_t strlcpy (
char * dest,
const char * src,
size_t siz);
41extern size_t strlcat (
char *dest,
const char *src,
size_t siz);
55 class String :
public std::string {
59 String() :
std::string() {}
60 String (
const String & s,
size_t pos,
size_t len = std::string::npos) :
std::string (s, pos, len) {}
61 String (
const char * s) :
std::string (s) {}
62 String (
const char * s,
size_t n) :
std::string (s, n) {}
63 String (
size_t n,
char c) :
std::string (n, c) {}
64 String (
const std::string &s) :
std::string (s) {}
65 String (
const std::string & s,
size_t pos,
size_t len = std::string::npos) :
std::string (s, pos, len) {}
67 explicit String (
unsigned char n,
unsigned char base = 10) : String (toString (n, base)) {}
68 explicit String (
int n,
unsigned char base = 10) : String (toString (n, base)) {}
69 explicit String (
unsigned int n,
unsigned char base = 10) : String (toString (n, base)) {}
70 explicit String (
long n,
unsigned char base = 10) : String (toString (n, base)) {}
71 explicit String (
unsigned long n,
unsigned char base = 10) : String (toString (n, base)) {}
73 explicit String (
char c) : String() {
75 std::string::push_back (c);
79 inline void reserve (
unsigned int size);
84 void replace (
const String& str1,
const String& str2);
85 inline void replace (
char c1,
char c2);
89 inline String & operator += (
const String& str);
90 inline String & operator += (
const char * str);
91 inline String & operator += (
char c);
92 inline String & operator += (
unsigned char num);
93 inline String & operator += (
int num);
94 inline String & operator += (
unsigned int num);
95 inline String & operator += (
long num);
96 inline String & operator += (
unsigned long num);
98 inline void concat (
const String &str);
99 inline void concat (
const char *cstr);
100 inline void concat (
char c);
101 inline void concat (
unsigned char num);
102 inline void concat (
int num);
103 inline void concat (
unsigned int num);
104 inline void concat (
long num);
105 inline void concat (
unsigned long num);
106 inline void ltrim ();
107 inline void rtrim ();
112 bool equalsIgnoreCase (
const String &s)
const;
113 inline int compareTo (
const String &s)
const;
114 inline bool equals (
const String &s)
const;
115 inline bool equals (
const char *cstr)
const;
116 inline bool startsWith (
const String &prefix,
unsigned int offset = 0)
const;
117 inline bool startsWith (
const std::string &prefix,
unsigned int offset = 0)
const;
118 inline bool startsWith (
char prefix,
unsigned int offset = 0)
const;
119 inline bool startsWith (
const char * prefix,
unsigned int offset = 0)
const;
120 inline bool endsWith (
const String &suffix)
const;
121 inline bool endsWith (
const std::string &suffix)
const;
122 inline bool endsWith (
char suffix)
const;
123 inline bool endsWith (
const char * suffix)
const;
127 void getBytes (
unsigned char *buf,
unsigned int bufsize,
unsigned int index = 0)
const;
128 inline char charAt (
unsigned int index)
const;
129 inline void setCharAt (
unsigned int index,
char c);
130 inline void toCharArray (
char *buf,
unsigned int bufsize,
unsigned int index = 0)
const;
131 inline int indexOf (
char ch,
unsigned int fromIndex = 0)
const;
132 inline int indexOf (
const char * str,
unsigned int fromIndex = 0)
const;
133 inline int indexOf (
const String &str,
unsigned int fromIndex = 0)
const;
134 inline int lastIndexOf (
char ch,
unsigned int fromIndex = -1)
const;
135 inline int lastIndexOf (
const char * str,
unsigned int fromIndex = -1)
const;
136 inline int lastIndexOf (
const String &str,
unsigned int fromIndex = -1)
const;
137 inline String substring (
unsigned int beginIndex)
const;
138 inline String substring (
unsigned int beginIndex,
unsigned int endIndex)
const;
141 static String toString (
long num,
unsigned char base = 10);
142 static String toString (
unsigned long num,
unsigned char base = 10);
143 static inline String toString (
int num,
unsigned char base = 10);
144 static inline String toString (
short num,
unsigned char base = 10);
145 static inline String toString (
unsigned int num,
unsigned char base = 10);
146 static inline String toString (
unsigned short num,
unsigned char base = 10);
147 static inline String toString (
unsigned char num,
unsigned char base = 10);
151 inline String & String::operator += (
const String& str) {
157 inline String & String::operator += (
const char * str) {
163 inline String & String::operator += (
char c) {
169 inline String & String::operator += (
unsigned char num) {
175 inline String & String::operator += (
int num) {
181 inline String & String::operator += (
unsigned int num) {
187 inline String & String::operator += (
long num) {
193 inline String & String::operator += (
unsigned long num) {
199 inline void String::reserve (
unsigned int size) {
201 std::string::reserve (size);
204 inline void String::replace (
char c1,
char c2) {
206 std::replace (
begin(),
end(), c1, c2);
209 inline void String::concat (
const String &str) {
211 std::string::append (str);
214 inline void String::concat (
const char *cstr) {
216 std::string::append (cstr);
219 inline void String::concat (
char c) {
221 std::string::push_back (c);
224 inline void String::concat (
unsigned char num) {
226 std::string::append (toString (num));
229 inline void String::concat (
int num) {
231 std::string::append (toString (num));
234 inline void String::concat (
unsigned int num) {
236 std::string::append (toString (num));
239 inline void String::concat (
long num) {
241 std::string::append (toString (num));
244 inline void String::concat (
unsigned long num) {
246 std::string::append (toString (num));
249 inline void String::ltrim () {
251 std::string::erase (0, find_first_not_of (std::string (
"\t\n\v\f\r ")));
254 inline void String::rtrim () {
256 std::string::erase (find_last_not_of (std::string (
"\t\n\v\f\r ")) + 1);
259 inline void String::trim () {
265 inline int String::compareTo (
const String &s)
const {
267 return std::string::compare (s);
270 inline bool String::equals (
const String &s)
const {
272 return reinterpret_cast<const std::string &
> (s) ==
reinterpret_cast<const std::string &
> (*
this);
275 inline bool String::equals (
const char *cstr)
const {
277 return cstr == (*this);
280 inline bool String::startsWith (
const String &prefix,
unsigned int offset)
const {
282 return std::string::find (prefix, offset) == 0;
285 inline bool String::startsWith (
const std::string &prefix,
unsigned int offset)
const {
287 return std::string::find (prefix, offset) == 0;
291 inline bool String::startsWith (
char prefix,
unsigned int offset)
const {
293 return std::string::find (prefix, offset) == 0;
297 inline bool String::startsWith (
const char * prefix,
unsigned int offset)
const {
299 return std::string::find (prefix, offset) == 0;
303 inline bool String::endsWith (
const String &suffix)
const {
305 return std::string::rfind (suffix) == (length() - suffix.length());
309 inline bool String::endsWith (
const std::string &suffix)
const {
311 return std::string::rfind (suffix) == (length() - suffix.length());
315 inline bool String::endsWith (
char suffix)
const {
317 return std::string::rfind (suffix) == (length() - 1);
321 inline bool String::endsWith (
const char * suffix)
const {
323 return std::string::rfind (suffix) == (length() - strlen (suffix));
328 inline char String::charAt (
unsigned int index)
const {
334 inline void String::setCharAt (
unsigned int index,
char c) {
336 std::string::replace (index, 1, &c);
340 inline void String::toCharArray (
char *buf,
unsigned int bufsize,
unsigned int index)
const {
342 getBytes ( (
unsigned char *) buf, bufsize, index);
346 inline int String::indexOf (
char ch,
unsigned int fromIndex)
const {
348 return std::string::find (ch, fromIndex);
352 inline int String::indexOf (
const char * str,
unsigned int fromIndex)
const {
354 return std::string::find (str, fromIndex);
358 inline int String::indexOf (
const String &str,
unsigned int fromIndex)
const {
360 return std::string::find (str, fromIndex);
364 inline int String::lastIndexOf (
char ch,
unsigned int fromIndex)
const {
366 return std::string::rfind (ch, (fromIndex == -1 ? std::string::npos : fromIndex));
370 inline int String::lastIndexOf (
const String &str,
unsigned int fromIndex)
const {
372 return std::string::rfind (str, (fromIndex == -1 ? std::string::npos : fromIndex));
376 inline int String::lastIndexOf (
const char * str,
unsigned int fromIndex)
const {
378 return std::string::rfind (str, (fromIndex == -1 ? std::string::npos : fromIndex));
382 inline String String::substring (
unsigned int beginIndex)
const {
384 return substr (beginIndex);
388 inline String String::substring (
unsigned int beginIndex,
unsigned int endIndex)
const {
390 return substr (beginIndex, endIndex - beginIndex);
394 inline String String::toString (
int num,
unsigned char base) {
396 return toString (
static_cast<long> (num), base);
400 inline String String::toString (
short num,
unsigned char base) {
402 return toString (
static_cast<long> (num), base);
406 inline String String::toString (
unsigned int num,
unsigned char base) {
408 return toString (
static_cast<unsigned long> (num), base);
412 inline String String::toString (
unsigned short num,
unsigned char base) {
414 return toString (
static_cast<unsigned long> (num), base);
418 inline String String::toString (
unsigned char num,
unsigned char base) {
420 return toString (
static_cast<unsigned long> (num), base);
Global namespace for Piduino.
RingBuffer< T, A >::iterator end(RingBuffer< T, A > &cb)
RingBuffer< T, A >::iterator begin(RingBuffer< T, A > &cb)