LSFramework/LSString/LSString.h
DirtyDuckEUW 4f9b04c049 new file: LSList.h
new file:   LSListItem.h
	new file:   LSMacros.h
	modified:   LSString.h
	modified:   LSString.vcxproj
	new file:   LSVector.h
	modified:   main.cpp
2021-10-18 23:58:17 +02:00

74 lines
No EOL
1.4 KiB
C++

#pragma once
#include <string>
#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;
};