cwText.h/cpp : Added first/lastMatchChar() for non-const strings.

This commit is contained in:
kevin 2024-04-22 15:56:11 -04:00
parent 66c1f08c16
commit a3012db165
2 changed files with 16 additions and 3 deletions

View File

@ -146,7 +146,7 @@ const char* cw::nextNonWhiteChar( const char* s )
const char* cw::nextNonWhiteCharEOS( const char* s ) const char* cw::nextNonWhiteCharEOS( const char* s )
{ return _nextNonWhiteChar(s,true); } { return _nextNonWhiteChar(s,true); }
const char* cw::firstMatchChar( const char* s, char c ) char* cw::firstMatchChar( char* s, char c )
{ {
if( s == nullptr ) if( s == nullptr )
return nullptr; return nullptr;
@ -157,7 +157,12 @@ const char* cw::firstMatchChar( const char* s, char c )
return nullptr; return nullptr;
} }
const char* cw::lastMatchChar( const char* s, char c ) const char* cw::firstMatchChar( const char* s, char c )
{
return firstMatchChar((char*)s,c);
}
char* cw::lastMatchChar( char* s, char c )
{ {
unsigned sn; unsigned sn;
@ -168,13 +173,18 @@ const char* cw::lastMatchChar( const char* s, char c )
if( sn == 0 ) if( sn == 0 )
return nullptr; return nullptr;
for(const char* s1=s+(sn-1); s<=s1; --s1) for(char* s1=s+(sn-1); s<=s1; --s1)
if( *s1 == c ) if( *s1 == c )
return s1; return s1;
return nullptr; return nullptr;
} }
const char* cw::lastMatchChar( const char* s, char c )
{
return lastMatchChar((char*)s,c);
}
bool cw::isInteger( const char* s ) bool cw::isInteger( const char* s )
{ {
for(; *s; ++s) for(; *s; ++s)

View File

@ -65,8 +65,11 @@ namespace cw
// Return a pointer to the first occurrence of 'c' in s[] or nullptr // Return a pointer to the first occurrence of 'c' in s[] or nullptr
// if 'c' does not occur in s[] // if 'c' does not occur in s[]
char* firstMatchChar( char* s, char c );
const char* firstMatchChar( const char* s, char c ); const char* firstMatchChar( const char* s, char c );
// Find the last occurrent of 'c' in s[]. // Find the last occurrent of 'c' in s[].
char* lastMatchChar( char* s, char c );
const char* lastMatchChar( const char* s, char c ); const char* lastMatchChar( const char* s, char c );
bool isInteger( const char* ); // text contains only [0-9] bool isInteger( const char* ); // text contains only [0-9]