#pragma once #include #include "LSMacros.h" class LSString { public: // - Constructor LSString() = default; LSString(const char* pData); LSString(const LSString& sRhs); LSString(const std::string& sRhs); LSString& operator=(const LSString& sRhs) = delete; // - Destructor ~LSString(); // - Alloc void Insert(const LSString& sRhs, size_t uiPos); void Insert(const std::string& sRhs, size_t uiPos); void Insert(const char* pData, size_t uiPos); void Append(const LSString& sRhs); void Append(const std::string& sRhs); void Append(const char* pData); bool Remove(const LSString& sRhs); bool Remove(const std::string& sRhs); bool Remove(const char* pData); bool RemoveAt(size_t uiPos, size_t uiSize); // - Utility size_t StringLength(const char* pData) const; bool Contains(const LSString& sRhs) const; bool Contains(const std::string& sRhs) const; bool Contains(const char* pData) const; size_t Find(const LSString& sRhs, size_t uiOffset = 0) const; size_t Find(const std::string& sRhs, size_t uiOffset = 0) const; size_t Find(const char* pData, size_t uiOffset = 0) const; char At(size_t uiPos) const; size_t Length() const; std::string ToStdString() const; const char* ToCChar() const; private: void IncreaseCapacity(size_t uiNewLength = 0); char* m_pData = nullptr; size_t m_uiLength = 0; size_t m_uiCapacity = 0; const float c_uiCapacityIncreaseFactor = 1.5; };