📄 knstring.h
字号:
/********************************************
//file name :SFString.h
//date: 2001.07.13
//用途:管理指定的字符串的头指针和长度
********************************************/
#if !defined(_SFSTRING_H_LINYOUHAI)
#define _SFSTRING_H_LINYOUHAI
#include "SHPP.h"
class CStrPtrLen
{
public:
//CONSTRUCTORS/DESTRUCTOR
//These are so tiny they can all be inlined
CStrPtrLen() : m_pchPtr(NULL), m_unLen(0) {}
CStrPtrLen(char* sp) : m_pchPtr(sp), m_unLen(sp != NULL ? strlen(sp) : 0) {}
CStrPtrLen(char *sp, UInt32 len) : m_pchPtr(sp), m_unLen(len) {}
~CStrPtrLen() {}
//compare比较长度和内容是否完全相等
Bool16 Equal(const CStrPtrLen &compare) const;
Bool16 Equal(const char* compare) const;
//在指定len的大小长度内时是否相等
Bool16 EqualIgnoreCase(const char* compare, const UInt32 len) const;
//判断m_pchPtr 前长度为len的compare字符串相等
Bool16 NumEqualIgnoreCase(const char* compare, const UInt32 len) const;
//=操作符,将newStr赋给新的CStrPtrLen类型
CStrPtrLen& operator=(const CStrPtrLen& newStr)
{ m_pchPtr = newStr.m_pchPtr; m_unLen = newStr.m_unLen;return *this; }
//char操场作符,返回第i个字符字节
char operator[](int i) { /*Assert(i<m_unLen);i*/ return m_pchPtr[i]; }
//设置m_pchPtr与 m_unLen。
void Set(char* inPtr, UInt32 inLen){ m_pchPtr = inPtr; m_unLen = inLen; }
void Set(char* inPtr){ m_pchPtr = inPtr; m_unLen = strlen(inPtr); }
//获取m_pchPtr的 m_unLen字符串且第m_unLen字节为'\0'结束
//后一定要调用
char* GetBuffer(UInt32 unLen = 0) const;
void ReleaseBuffer(char* pchRel);
//转化函数
UInt32 Atoi();
//比较两个串中的内容是否相等
Bool16 operator == (const CStrPtrLen &compare) const
{return Equal(compare);}
//成员变量:
char* m_pchPtr; //指向输入串的字符指针
UInt32 m_unLen; //指向输入串的字符串的长度
private:
static UInt8 s_chCaseInsensitiveMask[];
};
/////////////////////////////////////////////
//class CKNString
//保存以'\0'为结束的字符串
class CKNString
{
public:
CKNString(); //空的字符串
CKNString(char ch,UInt32 unLen =1); //单个字节
CKNString(const char* psz); //格式化一个字符串psz
CKNString(const CKNString& stringSrc); //copy构造器
~CKNString();
//返回m_unLen。
UInt32 GetLength(){return m_unLen;}
char* GetBuffer(UInt32 unLen = 0) const;
//返回m_pchPtr是否为空的,为空返回1,否则为0。
Bool16 IsEmpty() const {return (m_pchPtr ? 1 : 0);}
//释放m_pchPtr缓存,并设置m_pchPtr为NULL
void Empty();
//转化化字符指针的操作符
operator char*(){return m_pchPtr;}
//=操作符。
const CKNString& operator=(const CKNString& strSrc);
const CKNString& operator=(const char* pchSrc);
// == 比较两个CKNString 的m_pchPtr内容是否相等。
Bool16 operator==(const CKNString& strSrc) const;
private:
char* m_pchPtr;
UInt32 m_unLen;
// friend class CKNString;
};
#endif //defined(_SFSTRING_H_LINYOUHAI)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -