/* libzz
 *
 * This program is distributed under the GNU General Public License, version 2.
 * A copy of this license is included with this source.
 *
 * Copyright 2000-2006, Toni Thomsson <toni@tonjac.org> 
*/

#if !defined(zz_string_h)
#define zz_string_h

#include <zz_export.h>

#if defined(WIN32)

    #include <string>
    using namespace std ;
#else
    #include <string>
#endif
 
/**
    String utility class

    @author Toni Thomsson, toni@tonjac.org  
*/
class ZZ_API CzzString : public string
{

public:
    
    /** Empty string */
    CzzString();

    /** String */
    CzzString( string aString );

    /** String */
    CzzString( const CzzString & aString );

    /** String */
    CzzString( const char* aString );

    /** String */
    CzzString( const char* aString, size_type n );

    virtual ~CzzString();

    /**
        Create a string from a format mask and parameters, see sprintf()
        @param format   Format mask
        @param ...      Parameters
    */
    static CzzString Format( const char* format, ... );

    /** Return a uppercase representation of the string */
    CzzString UpperCase( void );

    /** Return a lowercase representation of the string */
    CzzString LowerCase( void );
};

#endif // zz_string_h