Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/collections/string.hfa

    r4dab7e8 r211def2  
    1010// Created On       : Fri Sep 03 11:00:00 2021
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug  5 23:06:14 2024
    13 // Update Count     : 128
     12// Last Modified On : Tue Feb  6 20:59:18 2024
     13// Update Count     : 118
    1414//
    1515
     
    2828
    2929// Getters
    30 size_t size( const string & s );
    31 static inline size_t strlen( const string & s ) { return size( s ); }
     30size_t size(const string & s);
     31static inline size_t strlen(const string & s) { return size( s ); }
    3232
    3333// RAII, assignment
    34 void ?{}( string & s ); // empty string
    35 void ?{}( string & s, const string & s2 );
    36 void ?{}( string & s, const string & s2, size_t maxlen );
    37 void ?{}( string & s, string & s2 );
    38 
    39 void ?{}( string & s, char );
    40 void ?{}( string & s, const char * c );                                 // copy from string literal (NULL-terminated)
    41 void ?{}( string & s, const char * c, size_t size );    // copy specific length from buffer
     34void ?{}(string & s); // empty string
     35void ?{}(string & s, const string & s2);
     36void ?{}(string & s, const string & s2, size_t maxlen);
     37void ?{}(string & s, string & s2);
     38
     39void ?{}(string & s, char);
     40void ?{}(string & s, const char * c); // copy from string literal (NULL-terminated)
     41void ?{}(string & s, const char * c, size_t size); // copy specific length from buffer
    4242
    4343void ?{}( string & s, ssize_t rhs );
     
    4848void ?{}( string & s, long double _Complex rhs );
    4949
    50 string str( ssize_t rhs );
    51 string str( size_t rhs );
    52 string str( double rhs );
    53 string str( long double rhs );
    54 string str( double _Complex rhs );
    55 string str( long double _Complex rhs );
    56 
    57 string & ?=?( string & s, const string & c );
    58 string & ?=?( string & s, string & c );
    59 string & ?=?( string & s, const char * c );                             // copy from "literal"
    60 string & ?=?( string & s, char c );                                             // copy from 'l'
    61 string & assign( string & s, const string & c, size_t n );
    62 string & assign( string & s, const char * c, size_t n );
    63 
    64 static inline string & strcpy( string & s, const char * c ) { s = c; return s; }
    65 static inline string & strncpy( string & s, const char * c, size_t n ) { assign( s, c, n ); return s; }
    66 static inline string & strcpy( string & s, const string & c ) { s = c; return s; }
    67 static inline string & strncpy( string & s, const string & c, size_t n ) { assign( s, c, n ); return s; }
     50string & ?=?(string & s, const string & c);
     51string & ?=?(string & s, string & c);
     52string & ?=?(string & s, const char * c); // copy from "literal"
     53string & ?=?(string & s, char c);  // copy from 'l'
     54string & assign(string & s, const string & c, size_t n);
     55string & assign(string & s, const char * c, size_t n);
     56
     57static inline string & strcpy(string & s, const char * c) { s = c; return s; }
     58static inline string & strncpy(string & s, const char * c, size_t n) { assign( s, c, n); return s; }
     59static inline string & strcpy(string & s, const string & c) { s = c; return s; }
     60static inline string & strncpy(string & s, const string & c, size_t n) { assign(s, c, n); return s; }
    6861
    6962string & ?=?( string & s, ssize_t rhs );
     
    7467string & ?=?( string & s, long double _Complex rhs );
    7568
    76 void ^?{}( string & s );
     69void ^?{}(string & s);
    7770
    7871// Alternate construction: request shared edits
     
    8477
    8578// IO Operator
    86 ofstream & ?|?( ofstream & out, const string & s );
    87 void ?|?( ofstream & out, const string & s );
    88 ifstream & ?|?( ifstream & in, string & s );
     79ofstream & ?|?(ofstream & out, const string & s);
     80void ?|?(ofstream & out, const string & s);
     81ifstream & ?|?(ifstream & in, string & s);
    8982
    9083static inline {
     
    152145
    153146// Concatenation
    154 void ?+=?( string & s, char c );                                                // append a character
    155 void ?+=?( string & s, const string & s2 );                             // append-concatenate to first string
    156 void append( string & s, const string & s2, size_t maxlen );  // append-concatenate to first string, up to maxlen
    157 void ?+=?( string & s, const char * s2 );                               // append-concatenate NULL-terminated string to first string
    158 void append( string & s, const char * buffer, size_t bsize ); // append-concatenate given range to first string
    159 
    160 string ?+?( const string & s, char c );                                 // add a character to a copy of the string
    161 string ?+?( char c, const string & s );                                 // add a character to a copy of the string
    162 string ?+?( const string & s, const string & s2 );              // copy and concatenate both strings
    163 string ?+?( const char * s, char c );                                   // copy and concatenate both strings
    164 string ?+?( char c, const char * s );                                   // copy and concatenate both strings
    165 string ?+?( const char * s1, const char * s2 );                 // copy and concatenate both strings
    166 string ?+?( const char * s1, string & s2 );                             // copy and concatenate both strings
    167 string ?+?( const string & s, const char * c );                 // copy and concatenate with NULL-terminated string
    168 
    169 static inline string & strcat( string & s, const string & s2 ) { s += s2; return s; }
    170 static inline string & strcat( string & s, const char * c ) { s += c; return s; }
    171 static inline string & strncat( string & s, const string & s2, size_t maxlen ) { append( s, s2, maxlen ); return s; }
    172 static inline string & strncat( string & s, const char * buffer, size_t bsize ) { append( s, buffer, bsize ); return s; }
     147void ?+=?(string & s, char c); // append a character
     148void ?+=?(string & s, const string & s2); // append-concatenate to first string
     149void append(string & s, const string & s2, size_t maxlen);  // append-concatenate to first string, up to maxlen
     150void ?+=?(string & s, const char * s2); // append-concatenate NULL-terminated string to first string
     151void append(string & s, const char * buffer, size_t bsize);  // append-concatenate given range to first string
     152
     153string ?+?(const string & s, char c); // add a character to a copy of the string
     154string ?+?(const string & s, const string & s2); // copy and concatenate both strings
     155string ?+?(const char * s1, const char * s2); // copy and concatenate both strings
     156string ?+?(const string & s, const char * c); // copy and concatenate with NULL-terminated string
     157
     158static inline string & strcat(string & s, const string & s2) { s += s2; return s; }
     159static inline string & strcat(string & s, const char * c) { s += c; return s; }
     160static inline string & strncat(string & s, const string & s2, size_t maxlen) { append(s, s2, maxlen); return s; }
     161static inline string & strncat(string & s, const char * buffer, size_t bsize) { append(s, buffer, bsize); return s; }
    173162
    174163// Repetition
    175 string ?*?( const string & s, size_t factor );
    176 void ?*=?( string & s, size_t factor );
    177 string ?*?( char c, size_t factor );
    178 string ?*?( const char *s, size_t factor );
     164string ?*?(const string & s, size_t factor);
     165void ?*=?(string & s, size_t factor);
     166string ?*?(char c, size_t factor);
     167string ?*?(const char *s, size_t factor);
    179168
    180169// Character access
    181 char ?[?]( const string & s, size_t index );
    182 string ?[?]( string & s, size_t index );                                // mutable length-1 slice of original
    183 //char codePointAt(const string & s, size_t index );            // to revisit under Unicode
     170char ?[?](const string & s, size_t index);
     171string ?[?](string & s, size_t index);  // mutable length-1 slice of original
     172//char codePointAt(const string & s, size_t index);  // to revisit under Unicode
    184173
    185174// Comparisons
    186 int strcmp ( const string &, const string &);
    187 bool ?==?( const string &, const string &);
    188 bool ?!=?( const string &, const string &);
    189 bool ?>? ( const string &, const string &);
    190 bool ?>=?( const string &, const string &);
    191 bool ?<=?( const string &, const string &);
    192 bool ?<? ( const string &, const string &);
    193 
    194 int strcmp( const string &, const char *);
    195 bool ?==?( const string &, const char *);
    196 bool ?!=?( const string &, const char *);
    197 bool ?>? ( const string &, const char *);
    198 bool ?>=?( const string &, const char *);
    199 bool ?<=?( const string &, const char *);
    200 bool ?<? ( const string &, const char *);
    201 
    202 int strcmp( const char *, const string &);
    203 bool ?==?( const char *, const string &);
    204 bool ?!=?( const char *, const string &);
    205 bool ?>? ( const char *, const string &);
    206 bool ?>=?( const char *, const string &);
    207 bool ?<=?( const char *, const string &);
    208 bool ?<? ( const char *, const string &);
     175int  strcmp (const string &, const string &);
     176bool ?==?(const string &, const string &);
     177bool ?!=?(const string &, const string &);
     178bool ?>? (const string &, const string &);
     179bool ?>=?(const string &, const string &);
     180bool ?<=?(const string &, const string &);
     181bool ?<? (const string &, const string &);
     182
     183int  strcmp (const string &, const char *);
     184bool ?==?(const string &, const char *);
     185bool ?!=?(const string &, const char *);
     186bool ?>? (const string &, const char *);
     187bool ?>=?(const string &, const char *);
     188bool ?<=?(const string &, const char *);
     189bool ?<? (const string &, const char *);
     190
     191int  strcmp (const char *, const string &);
     192bool ?==?(const char *, const string &);
     193bool ?!=?(const char *, const string &);
     194bool ?>? (const char *, const string &);
     195bool ?>=?(const char *, const string &);
     196bool ?<=?(const char *, const string &);
     197bool ?<? (const char *, const string &);
    209198
    210199
    211200// Slicing
    212 string ?()( string & s, size_t start, size_t len );             // TODO const?
    213 string ?()( string & s, size_t start );
     201string ?()( string & s, size_t start, size_t len );  // TODO const?
     202string ?()( string & s, size_t start);
    214203
    215204// String search
    216 bool contains( const string & s, char ch );                             // single character
    217 
    218 int find( const string & s, char search );
    219 int find( const string & s, const string & search );
    220 int find( const string & s, const char * search );
    221 int find( const string & s, const char * search, size_t searchsize );
    222 
    223 int findFrom( const string & s, size_t fromPos, char search );
    224 int findFrom( const string & s, size_t fromPos, const string & search );
    225 int findFrom( const string & s, size_t fromPos, const char * search );
    226 int findFrom( const string & s, size_t fromPos, const char * search, size_t searchsize );
    227 
    228 bool includes( const string & s, const string & search );
    229 bool includes( const string & s, const char * search );
    230 bool includes( const string & s, const char * search, size_t searchsize );
    231 
    232 bool startsWith( const string & s, const string & prefix );
    233 bool startsWith( const string & s, const char * prefix );
    234 bool startsWith( const string & s, const char * prefix, size_t prefixsize );
    235 
    236 bool endsWith( const string & s, const string & suffix );
    237 bool endsWith( const string & s, const char * suffix );
    238 bool endsWith( const string & s, const char * suffix, size_t suffixsize );
     205bool contains(const string & s, char ch); // single character
     206
     207int find(const string & s, char search);
     208int find(const string & s, const string & search);
     209int find(const string & s, const char * search);
     210int find(const string & s, const char * search, size_t searchsize);
     211
     212int findFrom(const string & s, size_t fromPos, char search);
     213int findFrom(const string & s, size_t fromPos, const string & search);
     214int findFrom(const string & s, size_t fromPos, const char * search);
     215int findFrom(const string & s, size_t fromPos, const char * search, size_t searchsize);
     216
     217bool includes(const string & s, const string & search);
     218bool includes(const string & s, const char * search);
     219bool includes(const string & s, const char * search, size_t searchsize);
     220
     221bool startsWith(const string & s, const string & prefix);
     222bool startsWith(const string & s, const char * prefix);
     223bool startsWith(const string & s, const char * prefix, size_t prefixsize);
     224
     225bool endsWith(const string & s, const string & suffix);
     226bool endsWith(const string & s, const char * suffix);
     227bool endsWith(const string & s, const char * suffix, size_t suffixsize);
    239228
    240229// Modifiers
    241 void padStart( string & s, size_t n );
    242 void padStart( string & s, size_t n, char padding );
    243 void padEnd( string & s, size_t n );
    244 void padEnd( string & s, size_t n, char padding );
     230void padStart(string & s, size_t n);
     231void padStart(string & s, size_t n, char padding);
     232void padEnd(string & s, size_t n);
     233void padEnd(string & s, size_t n, char padding);
    245234
    246235
     
    250239
    251240void ?{}( charclass & ) = void;
    252 void ?{}( charclass &, charclass ) = void;
    253 charclass ?=?( charclass &, charclass ) = void;
    254 
    255 void ?{}( charclass &, const string & chars );
     241void ?{}( charclass &, charclass) = void;
     242charclass ?=?( charclass &, charclass) = void;
     243
     244void ?{}( charclass &, const string & chars);
    256245void ?{}( charclass &, const char * chars );
    257246void ?{}( charclass &, const char * chars, size_t charssize );
    258247void ^?{}( charclass & );
    259248
    260 int include( const string & s, const charclass & mask );
    261 
    262 int exclude( const string & s, const charclass & mask );
     249int include(const string & s, const charclass & mask);
     250
     251int exclude(const string & s, const charclass & mask);
    263252
    264253/*
    265254What to do with?
    266 StrRet include( string & s, const charclass & mask );
    267 StrRet exclude( string & s, const charclass & mask );
     255StrRet include(string & s, const charclass & mask);
     256StrRet exclude(string & s, const charclass & mask);
    268257*/
Note: See TracChangeset for help on using the changeset viewer.