String类的包装 ---- 类声明

这是我用C++语言实现的一个String类,类的声明如下:

目前还没有重载 + 操作符,有时间把这个也实现。

 

说明:CPP中实现有些用到库函数,我这里没有表出所引用的头文件。因此直接拷贝可能会导致编译错误。

// SdkString.h

class SdkString
{
public:
    // 构造函数
    SdkString();
    // 构造函数
    SdkString(const wchar_t* lpsrcStr);
    // 拷贝构造函数
    SdkString(const SdkString& srcStr);
    // 析构函数
    ~SdkString();
    // = 操作符
    SdkString& operator =(const SdkString& srcStr);
    // = 操作符
    SdkString& operator =(const wchar_t* lpsrcStr);
    // 在当前字符串后面追加字符串,返回当前this指针的引用,
    // 这样可以支持链式表达式,如str.Append(L"lee").Append(L"234")
    SdkString& Append(const wchar_t* lpsrcStr);
    // 格式化字符串
    SdkString& Format(const wchar_t* lpformat, ...);
    // 转化为小写
    SdkString& MakeLower();
    // 转化为大写
    SdkString& MakeUpper();
    // 倒序,如“123”变化“321”
    SdkString& MakeReverse();
    // 得到子字符串,给定起始索引和子字符串长度
    SdkString SubString(int startIndex, int length);
    // 判断当前字符是不是空
    bool IsEmpty() const;
    // 从资源文件中加载字符串
    bool LoadString(HINSTANCE hInst, int nID);
    // 判断当前字符是否包含指定字符串,可以忽略大小写
    bool IsContains(const wchar_t* lpstrValue, bool ignoreCase = false) const;
    // 判断当前字符串是不是以指定的字符开头
    bool IsStartWith(wchar_t ch) const;
    // 判断当前字符串是不是以指定的字符串开头
    bool IsStartWith(const wchar_t* lpsrcStr) const;
    // 判断当前字符串是不是指定的字符结束
    bool IsEndWith(wchar_t ch) const;
    // 判断当前字符串是不是以指定的字符串结束
    bool IsEndWith(const wchar_t* lpsrcStr) const;
    // 判断当前字符串是不是与指定的字符串相同,可以忽略大小写
    bool IsEqual(const wchar_t* lpsrcStr, bool ignoreCase = false) const;
    // 转化为wchar_t*
    const wchar_t* ToString() const;
    // 得到当前字符串长度
    size_t GetSize_r() const;
private:
    int         m_maxCapacity;              // The size of buffer string.
    wchar_t*    m_pDataArray;               // The pointer to the null-terminated string.
};

说明:由于考虑到这个String类应该是一个很底层的类,所以就没有用到Windows定义的宏和数据类型,如BOOL,IN,OUT,WCHAR,LPWSTR等。这里面用到的都是C++基本数据类型。该类目前只有Unicode版本,还没有ANSI版本。

 

由于篇幅,具体实现暂时不列出来,有兴趣的同事可以实现这些函数。等下一篇帖子我再把具体实现贴出来。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值