26 char const SPACE(
' ' );
27 char const TAB(
'\t' );
28 char const NULLC(
'\000' );
41 if (
str_[ i ] == s.
str_[ j ] )
return true;
52 size_type const s_len( std::strlen( s ) );
55 if (
str_[ i ] == s[ j ] )
return true;
69 if (
str_[ i ] == s[ j ] )
return true;
81 if (
str_[ i ] == c )
return true;
92 if (
str_[ i ] == c )
return true;
114 char const c(
str_[ i - 1 ] );
115 if ( ( c !=
SPACE ) && ( c !=
TAB ) && ( c !=
NULLC ) )
return i;
126 if (
str_[ i ] == c )
return i;
137 if (
str_[ i - 1 ] == c )
return i;
148 str_[ i ] = std::tolower(
str_[ i ] );
159 str_[ i ] = std::toupper(
str_[ i ] );
173 std::memmove(
str_,
str_ + i, len - i );
191 std::memmove(
str_ + len - i,
str_, i );
209 std::memmove(
str_ + pad,
str_, len_t );
223 char const c(
str_[ i ] );
226 if ( j < len ) std::memset(
str_ + j,
SPACE, len - j );
236 size_type
const s_len( s.
length() );
237 if ( s_len != t.
length() ) {
240 for ( size_type i = 0; i < s_len; ++i ) {
241 if ( std::tolower( s.
str_[ i ] ) != std::tolower( t.
str_[ i ] ) )
return false;
253 size_type
const s_len( s.
length() );
254 if ( s_len != std::strlen( t ) ) {
257 for ( size_type i = 0; i < s_len; ++i ) {
258 if ( std::tolower( s.
str_[ i ] ) != std::tolower( t[ i ] ) )
return false;
270 size_type
const s_len( std::strlen( s ) );
271 if ( s_len != t.
length() ) {
274 for ( size_type i = 0; i < s_len; ++i ) {
275 if ( std::tolower( s[ i ] ) != std::tolower( t.
str_[ i ] ) )
return false;
287 size_type
const s_len( s.
length() );
288 if ( s_len != t.length() ) {
291 for ( size_type i = 0; i < s_len; ++i ) {
292 if ( std::tolower( s.
str_[ i ] ) != std::tolower( t[ i ] ) )
return false;
304 size_type
const s_len( s.length() );
305 if ( s_len != t.
length() ) {
308 for ( size_type i = 0; i < s_len; ++i ) {
309 if ( std::tolower( s[ i ] ) != std::tolower( t.
str_[ i ] ) )
return false;
320 return ( ( s.
length() == 1 ) && ( std::tolower( s.
str_[ 0 ] ) == std::tolower( c ) ) );
328 return ( ( s.
length() == 1 ) && ( std::tolower( s.
str_[ 0 ] ) == std::tolower( c ) ) );
337 stream << s.
str_[ i ];
359 #ifndef _MSC_VER // Microsoft Visual C++ doesn't need or like these
std::istream & operator>>(std::istream &stream, byte &b)
Stream Input.
Cstring & compress()
Compress Out Whitespace.
bool has(char const c) const
Has a Character?
Cstring & left_justify()
Left Justify.
size_type find(char const c) const
Find First Occurrence of a Character.
size_type len_trim() const
Length Space-Trimmed.
size_type len_trim_whitespace() const
Length Whitespace-Trimmed.
Cstring & uppercase()
Uppercase.
Cstring & center()
Center.
bool has_any_of(Cstring const &s) const
Has Any Character of a Cstring?
bool equali(char const c, char const d)
char == char Case-Insensitively
size_type length() const
Length.
Cstring: C String Wrapper.
std::string & pad(std::string &s, std::string::size_type const len)
Pad a string to a Specified Length.
Cstring & lowercase()
Lowercase.
Cstring & right_justify()
Right Justify.
char const NULLC( '\000')
size_type find_last(char const c) const
Find Last Occurrence of a Character.
static size_type const npos
size_type len() const
Length.
std::ostream & operator<<(std::ostream &stream, CArray< T > const &a)
stream << CArray