?? 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 + -