|
GNU CommonC++
|
This is a generic and portable string class. More...
#include <string.h>
Public Types | |
| typedef size_t | size_type |
Public Member Functions | |
| String () | |
| Construct an empty string. | |
| String (const String &original) | |
| Copy constructor. | |
| String (const char *str) | |
| Create a string from a cstring. | |
| String (std::string string) | |
| Create a String from std::string. | |
| String (const String &str, size_t offset, size_t len=npos) | |
| Create a new string from a subset of another string. | |
| String (size_t size, const char *format,...) | |
| Create a string from formatted text input. | |
| String (size_t count, const char fill=' ') | |
| Fill a new string with character data. | |
| virtual | ~String () |
| Destroy the string... | |
| const char * | getIndex (size_t index) const |
| Get a string pointer to string content based on an indexed offset. | |
| char * | getText (void) const |
| Get the text of a string. | |
| long | getValue (long defvalue=0l) const |
| Get the value of a string. | |
| bool | getBool (bool defbool=false) const |
| Get the bool flag of a string. | |
| const size_t | getLength (void) const |
| Get the assigned length of string. | |
| const size_t | getSize (void) const |
| Get the allocation size of the string variable. | |
| bool | isEmpty (void) const |
| Return true if string is empty. | |
| void | resize (size_t size) |
| Re-allocate buffer space for string. | |
| void | clear (void) |
| Clear the contents of the entire string. | |
| char | at (ssize_t offset) const |
| Return a character at a known offset. | |
| unsigned | count (const String &s, size_t offset=0) const |
| Count the number of occurences of a specific string within our string. | |
| unsigned | count (const char *s, size_t offset=0, size_t len=0) const |
| Count the number of occurrences of a specific text pattern within our string. | |
| String | token (const char *delim=" \t\n\r", size_t offset=0) |
| Extract a new string as a token from the current string. | |
| size_t | find (const String &s, size_t offset=0, unsigned instance=1) const |
| Find the index to the nth instance of a substring in our string. | |
| size_t | rfind (const String &s, size_t offset=0) const |
| Find last occurence of a substring in our string. | |
| size_t | find (const char *s, size_t offset=0, size_t len=0, unsigned count=1) const |
| Find the index to the nth instance of text in our string. | |
| size_t | rfind (const char *s, size_t offset=0, size_t len=0) const |
| Find last occurence of a text in our string. | |
| void | trim (const char *cs) |
| Trim trailing characters from a string. | |
| void | chop (const char *cs) |
| Chop leading characters from a string. | |
| void | strip (const char *cs) |
| Strip lead and trailing characters from a string. | |
| void | chop (size_t chars) |
| Chop n leading characters from a string. | |
| void | trim (size_t count) |
| Trim n trailing characters from a string. | |
| void | erase (size_t start, size_t len=npos) |
| Erase a portion of string. | |
| void | insert (size_t start, const char *text, size_t len=0) |
| Insert text into a string. | |
| void | insert (size_t start, const String &str) |
| Insert other string into our string. | |
| void | replace (size_t start, size_t len, const char *text, size_t count=0) |
| Replace text at a specific position in the string with new text. | |
| void | replace (size_t start, size_t len, const String &string) |
| Replace text at a specific position in the string with new string,. | |
| size_t | find (unsigned instance, const char *text, size_t offset=0, size_t len=0) const |
| A more convenient version of find for nth occurences, by putting the instance first. | |
| size_t | find (unsigned instance, const String &string, size_t offset=0) const |
| A more convenient version of find for nth occurences, by putting the instance first. | |
| String | substr (size_t start, size_t len) const |
| Return a new string that contains a specific substring of the current string. | |
| const char * | index (size_t ind) const |
| Return an indexed string based on the index, such as from a find. | |
| void | compact (void) |
| Reduce the size of the string allocation to the minimum needed based on the current effective length. | |
| char * | c_str (void) const |
| Old ANSI C++ compatible string pointer extraction. | |
| operator char * () const | |
| Get our string data through dereference operator. | |
| bool | operator! (void) const |
| Logical test for string empty. | |
| char * | text (void) const |
| Alternate get text method. | |
| char * | data (void) const |
| Alternate get text method. | |
| size_t | length (void) const |
| Get length as if null terminated string. | |
| size_t | size (void) const |
| Get actual length of string data. | |
| size_t | capacity (void) const |
| Get space allocated to hold current string. | |
| bool | empty (void) const |
| Return true if string is empty. | |
| void | append (const char *str, size_t count=0) |
| Append text to the end of the current string. | |
| void | append (size_t size, const char *format,...) |
| Append formatted text to the end of the current string. | |
| void | append (const char *str, size_t offset, size_t count) |
| Append text into the current string. | |
| void | add (char c) |
| Add a character to the end of a string. | |
| void | append (const String &str) |
| Append string to the end of the current string. | |
| const char | operator[] (unsigned ind) const |
| Extract a character by array indexing. | |
| const char * | operator= (const char *str) |
| Assign our string for c string. | |
| String & | operator+= (const String &str) |
| Append operator. | |
| String & | operator+= (char c) |
| Append operator. | |
| String & | operator+= (const char *str) |
| Append operator. | |
| String & | operator+= (const std::string &str) |
| Append operator. | |
| bool | operator< (const String &str) const |
| bool | operator< (const char *str) const |
| bool | operator> (const String &str) const |
| bool | operator> (const char *str) const |
| bool | operator<= (const String &str) const |
| bool | operator<= (const char *str) const |
| bool | operator>= (const String &str) const |
| bool | operator>= (const char *str) const |
| bool | operator== (const String &str) const |
| bool | operator== (const char *str) const |
| bool | operator!= (const String &str) const |
| bool | operator!= (const char *str) const |
| String & | operator+= (int i) |
| Append operator. | |
| String & | operator+= (unsigned int i) |
| String & | operator+= (long l) |
| String & | operator+= (unsigned long l) |
| String & | operator+= (float f) |
| String & | operator+= (double d) |
| String & | operator+= (short s) |
| String & | operator+= (unsigned short s) |
| String & | operator= (int i) |
| Assignment operator. | |
| String & | operator= (unsigned int i) |
| String & | operator= (long l) |
| String & | operator= (unsigned long l) |
| String & | operator= (float f) |
| String & | operator= (double d) |
| String & | operator= (short s) |
| String & | operator= (unsigned short s) |
| String & | operator= (const String &original) |
| bool | operator*= (const String &str) const |
| Test if string is contained in our string. | |
| bool | operator*= (const char *str) const |
| Test if text is contained in our string. | |
Static Public Attributes | |
| static const size_t | npos |
Protected Member Functions | |
| bool | isBig (void) const |
| Determine if string is allocated in local variable or an external reference. | |
| const char * | set (const char *str, size_t len=0) |
| Set the content of the string variable to the specified string value, and use smart re-allocation strategies if appropriate to shrink the size of the variable. | |
| void | set (const String &str) |
| Set the content of the string variable to that of another variable. | |
| const char * | set (size_t size, const char *format,...) |
| Set the content of the string variable to that of a formatted printf style string. | |
| void | copy (const String &str) |
| Impliment the copy constructor, used internally. | |
| void | init (void) |
| Used to initialize a string object. | |
| size_t | setSize (size_t size) |
| Set the size of allocated space in the string variable (capacity) to a known value. | |
| void | setLength (size_t len) |
| Set the length value of the string content. | |
| virtual int | compare (const char *text, size_t len=0, size_t index=0) const |
| A derivable low level comparison operator. | |
| size_t | search (const char *text, size_t clen=0, size_t offset=0) const |
| An internal method used to search for a substring starting at a known offset. | |
Static Protected Member Functions | |
| static char * | getSpace (size_t size) |
| Used to fetch memory, if needed, based on the size, from the pager, or the system heap. | |
Static Protected Attributes | |
| static const unsigned | minsize |
| static const unsigned | slotsize |
| static const unsigned | pagesize |
| static const unsigned | slotlimit |
| static const unsigned | slotcount |
Friends | |
| class | StringObject |
| class | MemPager |
| __EXPORT String | operator+ (const String &s1, const String &s2) |
| Add two strings and return a temporary object. | |
| __EXPORT String | operator+ (const String &s1, const char *s2) |
| __EXPORT String | operator+ (const char *s1, const String &s2) |
| __EXPORT String | operator+ (const String &s1, const char c2) |
| __EXPORT String | operator+ (const char c1, const String &s2) |
| std::istream & | getline (std::istream &is, String &str, char delim='\n', size_t size=0) |
| Fetch input from a std::istream into the current string variable until either the string variable is filled (based on current length) or the deliminator is read. | |
| __EXPORT std::ostream & | operator<< (std::ostream &os, const String &str) |
| Stream the content of our string variable directly to a C++ streaming source. | |
| std::istream & | operator>> (std::istream &is, String &str) |
| Stream input into our variable. | |
| __EXPORT int | strprintf (String &str, size_t size, const char *format,...) |
| Print values directly into a string variable. | |
This is a generic and portable string class.
It uses optimized memory allocation strategies to efficiently handle smaller string content by grouping strings into 32 byte aligned slots that can be re-allocated from a free list directly.
While meant to cover the basic functionality of the ANSI C++ string class in form and function, this class offers some important enhancements, including the ability to derive class type specific versions of itself. The latter might be used to derive a unicode string, a string for data and time data types, or to add case insensitive comparisons, for example.
Generic string class.
| typedef size_t ost::String::size_type |
| ost::String::String | ( | ) |
Construct an empty string.
| ost::String::String | ( | const String & | original | ) |
Copy constructor.
| original | string to copy from. |
| ost::String::String | ( | const char * | str | ) |
Create a string from a cstring.
| str | text to set with. |
| ost::String::String | ( | std::string | string | ) |
Create a String from std::string.
| string | from std::string to copy from. |
Create a new string from a subset of another string.
| str | reference of source string. |
| offset | offset to start of data in prior string. |
| len | length of our substring. |
| ost::String::String | ( | size_t | size, |
| const char * | format, | ||
| ... ) |
Create a string from formatted text input.
| size | to allocate for our new string. |
| format | of data to input. |
| ost::String::String | ( | size_t | count, |
| const char | fill = ' ' ) |
Fill a new string with character data.
| count | size of new string. |
| fill | char to fill string with. |
|
virtual |
Destroy the string...
| void ost::String::add | ( | char | c | ) |
Add a character to the end of a string.
| c | char to add. |
| void ost::String::append | ( | const char * | str, |
| size_t | count = 0 ) |
Append text to the end of the current string.
| str | text to append. |
| count | size of text to append. |
| void ost::String::append | ( | const char * | str, |
| size_t | offset, | ||
| size_t | count ) |
Append text into the current string.
| str | text to append. |
| offset | offset to overlay. |
| count | size of text to append. |
| void ost::String::append | ( | const String & | str | ) |
Append string to the end of the current string.
| str | string to append. |
| void ost::String::append | ( | size_t | size, |
| const char * | format, | ||
| ... ) |
Append formatted text to the end of the current string.
| size | size of text to append. |
| format | of data to append. |
| char ost::String::at | ( | ssize_t | offset | ) | const |
Return a character at a known offset.
|
inline |
Old ANSI C++ compatible string pointer extraction.
|
inline |
Get space allocated to hold current string.
|
inline |
Chop leading characters from a string.
| cs | list of chars to chop. |
References ost::strchop().
|
inline |
Chop n leading characters from a string.
| chars | count to chop. |
| void ost::String::clear | ( | void | ) |
Clear the contents of the entire string.
|
inline |
Reduce the size of the string allocation to the minimum needed based on the current effective length.
|
protectedvirtual |
A derivable low level comparison operator.
This can be used to create custom comparison data types in derived string classes.
| text | text to compare. |
| len | length of text to compare. |
| index | offset from start of string, used in searchs. |
|
protected |
Impliment the copy constructor, used internally.
Will always create a minimum sized string allocation.
| str | string to copy from. |
| unsigned ost::String::count | ( | const char * | s, |
| size_t | offset = 0, | ||
| size_t | len = 0 ) const |
Count the number of occurrences of a specific text pattern within our string.
| s | text pattern to find |
| offset | offset to start from. |
| len | length of text pattern if specified. |
| unsigned ost::String::count | ( | const String & | s, |
| size_t | offset = 0 ) const |
Count the number of occurences of a specific string within our string.
| s | string to test. |
| offset | offset to start from. |
|
inline |
Alternate get text method.
|
inline |
Return true if string is empty.
| void ost::String::erase | ( | size_t | start, |
| size_t | len = npos ) |
Erase a portion of string.
| start | starting index to erase from. |
| len | number of characters to erase. |
| size_t ost::String::find | ( | const char * | s, |
| size_t | offset = 0, | ||
| size_t | len = 0, | ||
| unsigned | count = 1 ) const |
Find the index to the nth instance of text in our string.
| s | string to search for. |
| offset | offset to start at. |
| len | size of string text. |
| count | instance to look for. |
| size_t ost::String::find | ( | const String & | s, |
| size_t | offset = 0, | ||
| unsigned | instance = 1 ) const |
Find the index to the nth instance of a substring in our string.
| s | string to search for. |
| offset | offset to start at. |
| instance | instance to look for. |
|
inline |
A more convenient version of find for nth occurences, by putting the instance first.
| instance | nth instance to look for. |
| text | text to look for. |
| offset | offset to start at. |
| len | length of text. |
References ost::find().
|
inline |
A more convenient version of find for nth occurences, by putting the instance first.
| instance | nth instance to look for. |
| string | reference to look for. |
| offset | offset to start at. |
References ost::find().
| bool ost::String::getBool | ( | bool | defbool = false | ) | const |
Get the bool flag of a string.
| const char * ost::String::getIndex | ( | size_t | index | ) | const |
Get a string pointer to string content based on an indexed offset.
A NULL is returned if the index is outsize of range.
| index |
| const size_t ost::String::getLength | ( | void | ) | const |
Get the assigned length of string.
| const size_t ost::String::getSize | ( | void | ) | const |
Get the allocation size of the string variable.
|
staticprotected |
Used to fetch memory, if needed, based on the size, from the pager, or the system heap.
| size | of space needed. |
| char * ost::String::getText | ( | void | ) | const |
Get the text of a string.
| long ost::String::getValue | ( | long | defvalue = 0l | ) | const |
Get the value of a string.
|
inline |
Return an indexed string based on the index, such as from a find.
If out of range, a NULL string is returned.
| ind | index or offset to use. |
|
protected |
Used to initialize a string object.
| void ost::String::insert | ( | size_t | start, |
| const char * | text, | ||
| size_t | len = 0 ) |
Insert text into a string.
| start | starting offset to insert at. |
| text | text to insert. |
| len | size of text to insert. |
| void ost::String::insert | ( | size_t | start, |
| const String & | str ) |
Insert other string into our string.
| start | string offset to insert at. |
| str | string to insert. |
|
inlineprotected |
Determine if string is allocated in local variable or an external reference.
| bool ost::String::isEmpty | ( | void | ) | const |
Return true if string is empty.
|
inline |
Get length as if null terminated string.
|
inline |
Get our string data through dereference operator.
|
inline |
Logical test for string empty.
| bool ost::String::operator!= | ( | const char * | str | ) | const |
| bool ost::String::operator!= | ( | const String & | str | ) | const |
| bool ost::String::operator*= | ( | const char * | str | ) | const |
Test if text is contained in our string.
| bool ost::String::operator*= | ( | const String & | str | ) | const |
Test if string is contained in our string.
|
inline |
Append operator.
|
inline |
Append operator.
|
inline |
Append operator.
|
inline |
|
inline |
|
inline |
Append operator.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| bool ost::String::operator< | ( | const char * | str | ) | const |
| bool ost::String::operator< | ( | const String & | str | ) | const |
| bool ost::String::operator<= | ( | const char * | str | ) | const |
| bool ost::String::operator<= | ( | const String & | str | ) | const |
|
inline |
Assign our string for c string.
|
inline |
|
inline |
|
inline |
Assignment operator.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| bool ost::String::operator== | ( | const char * | str | ) | const |
| bool ost::String::operator== | ( | const String & | str | ) | const |
| bool ost::String::operator> | ( | const char * | str | ) | const |
| bool ost::String::operator> | ( | const String & | str | ) | const |
| bool ost::String::operator>= | ( | const char * | str | ) | const |
| bool ost::String::operator>= | ( | const String & | str | ) | const |
|
inline |
Extract a character by array indexing.
| void ost::String::replace | ( | size_t | start, |
| size_t | len, | ||
| const char * | text, | ||
| size_t | count = 0 ) |
Replace text at a specific position in the string with new text.
| start | starting offset to replace at. |
| len | length of text to remove. |
| text | text to replace with. |
| count | size of replacement text. |
| void ost::String::replace | ( | size_t | start, |
| size_t | len, | ||
| const String & | string ) |
Replace text at a specific position in the string with new string,.
| start | starting offset to replace at. |
| len | length of text to remove. |
| string | reference to replace with. |
| void ost::String::resize | ( | size_t | size | ) |
Re-allocate buffer space for string.
| size | new size to use. |
| size_t ost::String::rfind | ( | const char * | s, |
| size_t | offset = 0, | ||
| size_t | len = 0 ) const |
Find last occurence of a text in our string.
| s | string to search for. |
| offset | offset to start from. |
| len | size of string to look for. |
| size_t ost::String::rfind | ( | const String & | s, |
| size_t | offset = 0 ) const |
Find last occurence of a substring in our string.
| s | string to search for. |
| offset | offset to start from. |
|
protected |
An internal method used to search for a substring starting at a known offset.
Used by find and count methods.
| text | text to search for. |
| clen | length of search text. |
| offset | offset to start from. |
|
protected |
Set the content of the string variable to the specified string value, and use smart re-allocation strategies if appropriate to shrink the size of the variable.
| str | string to set. |
| len | length of string if passed. |
|
protected |
Set the content of the string variable to that of another variable.
Uses the string set method.
| str | string to copy from. |
|
protected |
Set the content of the string variable to that of a formatted printf style string.
| size | of string data to set. |
| format | of string to write into object. |
|
protected |
Set the length value of the string content.
| len | size in bytes. |
|
protected |
Set the size of allocated space in the string variable (capacity) to a known value.
The value is recomputed and adjusted based on allocation method.
| size | in bytes. |
|
inline |
Get actual length of string data.
| void ost::String::strip | ( | const char * | cs | ) |
Strip lead and trailing characters from a string.
| cs | list of chars to strip. |
|
inline |
Return a new string that contains a specific substring of the current string.
| start | starting offset for extracted substring. |
| len | length of substring. |
|
inline |
Alternate get text method.
| String ost::String::token | ( | const char * | delim = " \t\n\r", |
| size_t | offset = 0 ) |
Extract a new string as a token from the current string.
| delim | deliminator characters. |
| offset | offset to start from. |
|
inline |
Trim trailing characters from a string.
| cs | list of chars to trim. |
References ost::strtrim().
| void ost::String::trim | ( | size_t | count | ) |
Trim n trailing characters from a string.
| count | number of bytes to trim. |
|
friend |
Fetch input from a std::istream into the current string variable until either the string variable is filled (based on current length) or the deliminator is read.
| is | stream to read. |
| str | string to save into. |
| delim | deliminator to use. |
| size | optional size limitor. |
|
friend |
Add two strings and return a temporary object.
Stream the content of our string variable directly to a C++ streaming source.
|
friend |
Stream input into our variable.
|
friend |
Print values directly into a string variable.
| str | object reference to use. |
| size | of string required. |
| format | of data. |
| bool ost::String::big |
| struct { ... } ost::String::bigstring |
| size_t ost::String::length | ( | void | ) |
| char ost::String::length |
| struct { ... } ost::String::ministring |
|
staticprotected |
|
static |
|
staticprotected |
| size_t ost::String::size | ( | void | ) |
|
staticprotected |
|
staticprotected |
|
staticprotected |
| char* ost::String::text | ( | void | ) |
| char ost::String::text[(sizeof(char *)+(sizeof(size_t) *2)+1)] |