Edinburgh Speech Tools  2.4-release
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

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.
 

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

Concatenation

Assign single character to EST_String

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.
 
EST_String operator* (const EST_String &s, int n)
 Repeat string N times.
 
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)
 

Global search and replace

 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 ()
 Destructor. More...
 
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
 
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.
 

Split a string into parts.

These functions divide up a string producing an array of substrings.

class EST_Regex
 
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.
 
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.
 
EST_Stringignore_volatile (void) volatile
 
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)
 

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.11 2017/02/22 15:50:14 awb Exp

Definition at line 70 of file EST_String.h.

Constructor & Destructor Documentation

◆ ~EST_String()

EST_String::~EST_String ( )
inline

Destructor.

Copy constructor We have to declare our own copy constructor to lie to the compiler about the constness of the RHS.

Definition at line 235 of file EST_String.h.

Member Function Documentation

◆ cat()

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 1096 of file EST_String.cc.

Friends And Related Function Documentation

◆ fcompare

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 1162 of file EST_String.cc.


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