#include <include/EST_String.h>
Public Types | |
typedef int | EST_string_size |
Type of string size field. | |
Public Member Functions | |
EST_String (void) | |
Construct an empty string. | |
EST_String (const char *s) | |
Construct from char *. | |
EST_String (const char *s, int start_or_fill, int len) | |
Construct from part of char * or fill with given character. | |
EST_String (const char *s, int s_size, int start, int len) | |
Construct from C string. | |
EST_String (const EST_String &s, int start, int len) | |
EST_String (const EST_String &s) | |
~EST_String () | |
Destructor. | |
int | length (void) const |
Length of string ({not} length of underlying chunk) | |
int | space (void) const |
Size of underlying chunk. | |
const char * | str (void) const |
Get a const-pointer to the actual memory. | |
char * | updatable_str (void) |
Get a writable pointer to the actual memory. | |
void | make_updatable (void) |
int | Int (bool &ok) const |
Convert to an integer. | |
int | Int (void) const |
long | Long (bool &ok) const |
Convert to a long. | |
long | Long (void) const |
float | Float (bool &ok) const |
Convert to a float. | |
float | Float (void) const |
double | Double (bool &ok) const |
Convert to a double. | |
double | Double (void) const |
EST_String & | ignore_volatile (void) volatile |
Before | |
EST_String | before (int pos, int len=0) const |
Part before position. | |
EST_String | before (const char *s, int pos=0) const |
Part before first matching substring after pos. | |
EST_String | before (const EST_String &s, int pos=0) const |
Part before first matching substring after pos. | |
EST_String | before (EST_Regex &e, int pos=0) const |
Part before first match of regexp after pos. | |
At | |
EST_String | at (int from, int len=0) const |
Return part at position. | |
EST_String | at (const char *s, int pos=0) const |
Return part where substring found (not useful, included for completeness) | |
EST_String | at (const EST_String &s, int pos=0) const |
Return part where substring found (not useful, included for completeness) | |
EST_String | at (EST_Regex &e, int pos=0) const |
Return part matching regexp. | |
After | |
EST_String | after (int pos, int len=1) const |
Part after pos+len. | |
EST_String | after (const char *s, int pos=0) const |
Part after substring. | |
EST_String | after (const EST_String &s, int pos=0) const |
Part after substring. | |
EST_String | after (EST_Regex &e, int pos=0) const |
Part after match of regular expression. | |
Search for something | |
int | search (const char *s, int len, int &mlen, int pos=0) const |
Find a substring. | |
int | search (const EST_String s, int &mlen, int pos=0) const |
Find a substring. | |
int | search (EST_Regex &re, int &mlen, int pos=0, int *starts=NULL, int *ends=NULL) const |
Find a match of the regular expression. | |
Get position of something | |
int | index (const char *s, int pos=0) const |
Position of substring (starting at pos) | |
int | index (const EST_String &s, int pos=0) const |
Position of substring (starting at pos) | |
int | index (EST_Regex &ex, int pos=0) const |
Position of match of regexp (starting at pos) | |
Does string contain something? | |
int | contains (const char *s, int pos=-1) const |
Does it contain this substring? | |
int | contains (const EST_String &s, int pos=-1) const |
Does it contain this substring? | |
int | contains (const char c, int pos=-1) const |
Does it contain this character? | |
int | contains (EST_Regex &ex, int pos=-1) const |
Does it contain a match for this regular expression? | |
Does string exactly match? | |
int | matches (const char *e, int pos=0) const |
Exactly match this string? | |
int | matches (const EST_String &e, int pos=0) const |
Exactly match this string? | |
int | matches (EST_Regex &e, int pos=0, int *starts=NULL, int *ends=NULL) const |
Exactly matches this regular expression, can return ends of sub-expressions. | |
Global replacement | |
int | gsub (const char *os, const EST_String &s) |
Substitute one string for another. | |
int | gsub (const char *os, const char *s) |
Substitute one string for another. | |
int | gsub (const EST_String &os, const EST_String &s) |
Substitute one string for another. | |
int | gsub (const EST_String &os, const char *s) |
Substitute one string for another. | |
int | gsub (EST_Regex &ex, const EST_String &s) |
Substitute string for matches of regular expression. | |
int | gsub (EST_Regex &ex, const char *s) |
Substitute string for matches of regular expression. | |
int | gsub (EST_Regex &ex, int bracket_num) |
Substitute string for matches of regular expression. | |
int | subst (EST_String source, int(&starts)[EST_Regex_max_subexpressions], int(&ends)[EST_Regex_max_subexpressions]) |
Substitute the result of a match into a string. | |
Frequency counts | |
int | freq (const char *s) const |
Number of occurrences of substring. | |
int | freq (const EST_String &s) const |
Number of occurrences of substring. | |
int | freq (EST_Regex &s) const |
Number of matches of regular expression. | |
Quoting | |
EST_String | quote (const char quotec) const |
Return the string in quotes with internal quotes protected. | |
EST_String | quote_if_needed (const char quotec) const |
Return in quotes if there is something to protect (e.g. spaces) | |
EST_String | unquote (const char quotec) const |
Remove quotes and unprotect internal quotes. | |
EST_String | unquote_if_needed (const char quotec) const |
Remove quotes if any. | |
Operators | |
const char | operator() (int i) const |
Function style access to constant strings. | |
char & | operator[] (int i) |
Array style access to writable strings. | |
operator const char * () const | |
Cast to const char * by simply giving access to pointer. | |
operator const char * () | |
operator char * () | |
Cast to char *, may involve copying. | |
Add to end of string. | |
EST_String & | operator+= (const char *b) |
Add C string to end of EST_String. | |
EST_String & | operator+= (const EST_String b) |
Add EST_String to end of EST_String. | |
Assignment | |
EST_String & | operator= (const char *str) |
Assign C string to EST_String. | |
EST_String & | operator= (const char c) |
Assign single character to EST_String. | |
EST_String & | operator= (const EST_String &s) |
Assign EST_String to EST_String. | |
Static Public Member Functions | |
static EST_String | FromChar (const char c) |
Build string from a single character. | |
static EST_String | Number (int i, int base=10) |
Build string from an integer. | |
static EST_String | Number (long i, int base=10) |
Build string from a long integer. | |
static EST_String | Number (double d) |
Build string from a double. | |
static EST_String | Number (float f) |
Build string from a float. | |
static EST_String | cat (const EST_String s1, const EST_String s2=Empty, const EST_String s3=Empty, const EST_String s4=Empty, const EST_String s5=Empty, const EST_String s6=Empty, const EST_String s7=Empty, const EST_String s8=Empty, const EST_String s9=Empty) |
Static Public Attributes | |
static const char * | version = "CSTR String Class " STRING_VERSION " " STRING_DATE |
Global version string. | |
static const EST_String | Empty |
Constant empty string. | |
Friends | |
class | EST_Regex |
EST_String | operator* (const EST_String &s, int n) |
Repeat string N times. | |
EST_String | upcase (const EST_String &s) |
Convert to upper case. | |
EST_String | downcase (const EST_String &s) |
Convert to lower case. | |
ostream & | operator<< (ostream &s, const EST_String &str) |
Stream output for EST_String. | |
Concatenation | |
EST_String | operator+ (const EST_String &a, const EST_String &b) |
Concatenate two EST_Strings. | |
EST_String | operator+ (const char *a, const EST_String &b) |
Concatenate C String with EST_String. | |
EST_String | operator+ (const EST_String &a, const char *b) |
Concatenate EST_String with C String. | |
relational operators | |
int | operator== (const char *a, const EST_String &b) |
int | operator== (const EST_String &a, const char *b) |
int | operator== (const EST_String &a, const EST_String &b) |
int | operator!= (const char *a, const EST_String &b) |
int | operator!= (const EST_String &a, const char *b) |
int | operator!= (const EST_String &a, const EST_String &b) |
int | operator< (const char *a, const EST_String &b) |
int | operator< (const EST_String &a, const char *b) |
int | operator< (const EST_String &a, const EST_String &b) |
int | operator> (const char *a, const EST_String &b) |
int | operator> (const EST_String &a, const char *b) |
int | operator> (const EST_String &a, const EST_String &b) |
int | operator<= (const char *a, const EST_String &b) |
int | operator<= (const EST_String &a, const char *b) |
int | operator<= (const EST_String &a, const EST_String &b) |
int | operator>= (const char *a, const EST_String &b) |
int | operator>= (const EST_String &a, const char *b) |
int | operator>= (const EST_String &a, const EST_String &b) |
String comparison. | |
All these operators return -1, 0 or 1 to indicate the sort order of the strings. | |
int | compare (const EST_String &a, const EST_String &b) |
int | compare (const EST_String &a, const char *b) |
int | compare (const char *a, const EST_String &b) |
int | fcompare (const EST_String &a, const EST_String &b, const unsigned char *table) |
int | fcompare (const EST_String &a, const EST_String &b) |
int | fcompare (const EST_String &a, const char *b, const unsigned char *table) |
int | fcompare (const EST_String &a, const EST_String &b, const EST_String &table) |
Split a string into parts. | |
These functions divide up a string producing an array of substrings. | |
int | split (const EST_String &s, EST_String result[], int max, const EST_String &seperator, char quote=0) |
Split at a given separator. | |
int | split (const EST_String &s, EST_String result[], int max, const char *seperator, char quote=0) |
Split at a given separator. | |
int | split (const EST_String &s, EST_String result[], int max, EST_Regex &seperator, char quote=0) |
Split at each match of the regular expression. | |
A non-copyleft implementation of a string class to use with compilers that aren't GNU C++.
Strings are reference-counted and reasonably efficient (eg you can pass them around, into and out of functions and so on without worrying too much about the cost).
The associated class EST_Regex can be used to represent regular expressions.
Definition at line 70 of file EST_String.h.
|
inline |
Copy constructor We have to declare our own copy constructor to lie to the compiler about the constness of the RHS.
Definition at line 219 of file EST_String.h.
|
static |
Concatenate a number of strings. This is more efficient than multiple uses of + or +=
Definition at line 1081 of file EST_String.cc.
|
friend |
Case folded comparison.
The table argument can defined how upper and lower case characters correspond. The default works for ASCII.
Definition at line 1147 of file EST_String.cc.