// FSTRING.CPP - FString class demonstration // Chapter 4 example. Revised 11/24/95. #include "fstring.h" FString::FString() { str[0] = '\0'; } FString::FString( const char * S ) { strncpy( str, S, MaxSize ); str[MaxSize] = '\0'; } FString::FString( const FString & S ) { strcpy( str, S.CString() ); } FString & FString::Append( const FString & S ) { strncat( str, S.CString(), MaxSize ); return *this; } FString & FString::Assign( const char * S ) { strncpy( str, S, MaxSize ); return *this; } FString & FString::Assign( const FString & S2 ) { strncpy( str, S2.str, MaxSize ); return *this; } const char * FString::CString() const { return str; } int FString::Compare( const FString & S2 ) const { return strcmp( str, S2.str ); } int FString::LessThan( const FString & S2 ) const { return Compare( S2 ) < 0; } FString & FString::Min( const FString & S2 ) const { if( LessThan( S2 )) return *this; else return S2; } FString & FString::GetLine( istream & inp ) { inp.getline( str, MaxSize+1 ); return *this; } istream & operator >>( istream & inp, FString & S ) { inp >> setw(S.MaxSize+1) >> S.str; return inp; } ostream & operator <<( ostream & os, const FString & S ) { os << S.str; return os; }