#ifndef _CSTRING_HPP_ #define _CSTRING_HPP_ /*** C++ STL Files ***/ #include #include /*** SDL Header Files ***/ #include /*** DLL Header File ***/ #include "dllExport.h" /*#pragma warning (disable : 4231)*/ EXPIMP_TEMPLATE template class EXPORT_FROM_MYDLL std::allocator; EXPIMP_TEMPLATE template class EXPORT_FROM_MYDLL std::basic_string; /*#pragma warning (default : 4231)*/ #define __cString__MAX_LEN 65535 namespace UtilityEngine { class EXPORT_FROM_MYDLL cString { public: cString(); // default constructor cString(const char* s); cString(const cString& copy); // copy constructor ~cString(); const char * alloc_str(size_t sz); // smart alloc string void clear(); // frees the string const char * c_str() const; // getter const char * copy_str(const char* copy); // alloc & copy // utility methods bool have_value() const; size_t length() const; size_t size() const; cString & format(const char * format, ...); cString & trim(); cString lower() const; cString upper() const; const char & last_char() const; const std::vector split(const char match) const; const std::vector split(const char * match) const; const std::vector split(const char * match, int max_split) const; long int char_find(const char& match) const; const cString & char_repl(const char & match, const char & repl); cString substr(size_t start, size_t length) const; long int find(const cString & match); const cString replace(const cString & match, const cString & repl); // operators cString& operator = (const char* rhs); // assignment operator cString& operator = (const cString& rhs); // assignment operator cString& operator += (const char rhs); cString& operator += (const char* rhs); // concatenation operator cString& operator += (const cString& rhs); // concatenation operator bool operator == (const char* rhs) const; // comparisons bool operator == (const cString& rhs) const; bool operator != (const char* rhs) const; bool operator != (const cString& rhs) const; bool operator > (const cString& rhs) const; bool operator < (const cString& rhs) const; bool operator >= (const cString& rhs) const; bool operator <= (const cString& rhs) const; // conversion operators operator const char * () const; // c-string type operator std::string () const; // c++ string class private: char * mp_str = nullptr; size_t m_len = 0; };/// END CLASS DEFINITION cString // function overloads }/// END NAMESPACE DEFINITION UtilityEngine UtilityEngine::cString operator + (const UtilityEngine::cString& lhs, const UtilityEngine::cString& rhs); #endif/// END IFNDEF _CSTRING_HPP_