new file: LSListItem.h new file: LSMacros.h modified: LSString.h modified: LSString.vcxproj new file: LSVector.h modified: main.cpp
74 lines
No EOL
1.4 KiB
C++
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;
|
|
}; |