Edinburgh Speech Tools  2.4-release
 All Classes Functions Variables Typedefs Enumerations Enumerator Friends Pages
EST_String Class Reference

#include <include/EST_String.h>

Inheritance diagram for EST_String:
Collaboration diagram for EST_String:

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_Stringignore_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_Stringoperator+= (const char *b)
 Add C string to end of EST_String.
 
EST_Stringoperator+= (const EST_String b)
 Add EST_String to end of EST_String.
 
Assignment
EST_Stringoperator= (const char *str)
 Assign C string to EST_String.
 
EST_Stringoperator= (const char c)
 Assign single character to EST_String.
 
EST_Stringoperator= (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.
 

Detailed Description

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.

See Also
EST_Chunk
EST_Regex
string_example
Author
Alan W Black awb@c.nosp@m.str..nosp@m.ed.ac.nosp@m..uk
Richard Caley rjc@c.nosp@m.str..nosp@m.ed.ac.nosp@m..uk
Version
Id:
EST_String.h,v 1.10 2014/10/13 13:26:19 robert Exp

Definition at line 70 of file EST_String.h.

Constructor & Destructor Documentation

EST_String::EST_String ( const EST_String s)
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.

Member Function Documentation

EST_String 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

Concatenate a number of strings. This is more efficient than multiple uses of + or +=

Definition at line 1081 of file EST_String.cc.

Friends And Related Function Documentation

int fcompare ( const EST_String a,
const EST_String b,
const unsigned char *  table 
)
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.


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