minor changes
This commit is contained in:
parent
e1c392819d
commit
226b562ee0
3 changed files with 44 additions and 39 deletions
|
@ -87,7 +87,7 @@ bool LSString::RemoveAt(size_t uiPos, size_t uiSize)
|
||||||
size_t LSString::StringLength(const char* pChar) const
|
size_t LSString::StringLength(const char* pChar) const
|
||||||
{
|
{
|
||||||
if (!pChar) return 0;
|
if (!pChar) return 0;
|
||||||
int iRet = 0;
|
size_t iRet = 0;
|
||||||
while (*pChar != 0x0)
|
while (*pChar != 0x0)
|
||||||
{
|
{
|
||||||
pChar++;
|
pChar++;
|
||||||
|
@ -97,39 +97,16 @@ size_t LSString::StringLength(const char* pChar) const
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------------
|
||||||
bool LSString::Contains(const char* pData) const
|
int LSString::Find(const char * pData, size_t uiOffset, size_t uiLength) const
|
||||||
{
|
{
|
||||||
int iRet = 1;
|
int iRet = -1;
|
||||||
size_t uiLength = StringLength(pData);
|
while (uiOffset + uiLength <= m_uiLength)
|
||||||
size_t uiOffset = 0;
|
|
||||||
|
|
||||||
while (iRet != 0)
|
|
||||||
{
|
{
|
||||||
if (uiLength > m_uiLength || uiOffset > m_uiLength) break;
|
|
||||||
iRet = memcmp(m_pData + uiOffset, pData, uiLength);
|
iRet = memcmp(m_pData + uiOffset, pData, uiLength);
|
||||||
|
if (iRet == 0) break;
|
||||||
uiOffset++;
|
uiOffset++;
|
||||||
}
|
}
|
||||||
|
return iRet;
|
||||||
return iRet == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------------------------------
|
|
||||||
size_t LSString::Find(const char* pData, size_t uiOffset) const
|
|
||||||
{
|
|
||||||
size_t uiLength = StringLength(pData);
|
|
||||||
size_t uiCurrentOffset = uiOffset;
|
|
||||||
|
|
||||||
for (int iRet = 1; iRet != 0; uiCurrentOffset++)
|
|
||||||
{
|
|
||||||
if (uiLength > m_uiLength || uiCurrentOffset > m_uiLength)
|
|
||||||
{
|
|
||||||
uiCurrentOffset = -1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
iRet = memcmp(m_pData + uiCurrentOffset, pData, uiLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
return uiCurrentOffset;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -67,36 +67,57 @@ public:
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region Logic
|
#pragma region Logic
|
||||||
void Assign(const char* pData);
|
|
||||||
void Insert(const char* pData, size_t uiPos);
|
|
||||||
bool RemoveAt(size_t uiPos, size_t uiSize);
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
// - Utility
|
// - Utility
|
||||||
#pragma region Conversion
|
#pragma region Conversion
|
||||||
inline bool Contains(const LSString& sRhs) const
|
inline bool Contains(const LSString& sRhs) const
|
||||||
{
|
{
|
||||||
return Contains(sRhs.m_pData);
|
return Find(sRhs) == 0;
|
||||||
}
|
}
|
||||||
bool Contains(const std::string& sRhs) const
|
inline bool Contains(const std::string& sRhs) const
|
||||||
{
|
{
|
||||||
return Contains(sRhs.c_str());
|
return Find(sRhs) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool Contains(const char* pData) const
|
||||||
|
{
|
||||||
|
return Find(pData) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------------
|
||||||
inline size_t Find(const LSString& sRhs, size_t uiOffset) const
|
inline int Find(const LSString& sRhs, size_t uiOffset = 0) const
|
||||||
{
|
{
|
||||||
return Find(sRhs.m_pData, uiOffset);
|
return Find(sRhs.m_pData, uiOffset);
|
||||||
}
|
}
|
||||||
inline size_t Find(const std::string& sRhs, size_t uiOffset) const
|
inline int Find(const std::string& sRhs, size_t uiOffset = 0) const
|
||||||
{
|
{
|
||||||
return Find(sRhs.c_str(), uiOffset);
|
return Find(sRhs.c_str(), uiOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline int Find(const char* pData, size_t uiOffset = 0) const
|
||||||
|
{
|
||||||
|
return Find(pData, uiOffset, StringLength(pData));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int Find(const LSString& sRhs, size_t uiOffset, size_t uiLength) const
|
||||||
|
{
|
||||||
|
return Find(sRhs.m_pData, uiOffset, uiLength);
|
||||||
|
}
|
||||||
|
inline int Find(const std::string& sRhs, size_t uiOffset, size_t uiLength) const
|
||||||
|
{
|
||||||
|
return Find(sRhs.c_str(), uiOffset, uiLength);
|
||||||
|
}
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region Logic
|
#pragma region Logic
|
||||||
size_t StringLength(const char* pData) const;
|
size_t StringLength(const char* pData) const;
|
||||||
bool Contains(const char* pData) const;
|
void Assign(const char* pData);
|
||||||
size_t Find(const char* pData, size_t uiOffset = 0) const;
|
void Insert(const char* pData, size_t uiPos);
|
||||||
|
bool RemoveAt(size_t uiPos, size_t uiSize);
|
||||||
|
int Find(const char* pData, size_t uiOffset, size_t uiLength) const;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------------
|
||||||
inline char At(size_t uiPos) const
|
inline char At(size_t uiPos) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,6 +8,13 @@
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
printf("---LSString---\n");
|
||||||
|
LSString s = "187";
|
||||||
|
printf("Found: %d", s.Find("7"));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
// - STRING
|
// - STRING
|
||||||
{
|
{
|
||||||
printf("---LSString---\n");
|
printf("---LSString---\n");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue