This commit is contained in:
DirtyDuckEUW 2021-10-15 23:15:16 +02:00
parent 6dd93155cc
commit 6e22717a81
8 changed files with 576 additions and 0 deletions

88
LSString/LSString.h Normal file
View file

@ -0,0 +1,88 @@
#pragma once
#include <string>
class LSString
{
private:
#define DELETE_POINTER(Pointer) \
if (Pointer != nullptr)\
{\
delete Pointer;\
Pointer = nullptr;\
}
#define DELETE_ARRAY(Array) \
if (Array != nullptr)\
{\
delete[] Array;\
Array = nullptr;\
}
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;
};