#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 }/// END NAMESPACE DEFINITION UtilityEngine /// function overloads UtilityEngine::cString operator + (const UtilityEngine::cString& lhs, const UtilityEngine::cString& rhs); #endif/// END IFNDEF _CSTRING_HPP_