#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& first_char() 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); const bool IsInt() const; const long int ToInt() const; // 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_