|
自己使用的字符串类,在对于对字符串操作没有如鱼得水感觉的同学可以有直接的帮助,源码对常用字符串操作进行了类封装,可以很轻松的操作各种字符,优点是占用小,效率高,不包含任何扩展库文件,纯算法构造等,编译体积也显著缩减。
头文件:WYString.h,
源文件:WYString.cpp
- class WYString
- {
- int M_NumberToStr(long long _number, char str[]);
- void Init(int _length);
- int M_GetLength(const char* _str); //public:int GetLength();依赖(带终止符)
- int Align(const int _sourceNumber, int _align = MEMORY_ALIGN); //内存对齐,返回对齐后长度
- private:
- char* M_str;
- int M_Memorylength;
- int M_length;
- public:
- WYString();
- ~WYString();
- WYString(WYString& _str); //同类构造
- WYString(const char* _str); //ansic构造 (例如:WYString str = "ansi测试") 或(WYString str("ansi测试"))
- WYString(const wchar_t* _str); //UNICODE构造 (例如:WYString str = L"测试宽字节") 或
- WYString(const long long& _str); //数字构造 (例如:WYString str = 2518762) 或
- bool SetMemoryLength(const long _newLength); //重新设置缓冲区大小,成功返回true
- void SetBuffer(const WYString& _str); //重置数据,也可以直接使用 = 符号赋值
- int GetMemorylength(); //返回当前内存占用长度
- WYString operator [] (const int _index); //从指定位置起,取剩余所有字符串数据(例如:WYString str = "ansi测试";str[2];结果等于:nsi测试)
- WYString& operator = (const WYString& _str);
- WYString& operator << (const WYString& _str);
- WYString& operator + (const WYString& _str);
- WYString& operator += (const WYString& _str);
- friend bool operator == (const WYString& _str1, const WYString& _str2);
- const char* operator*(void);
- /*
- 数字字符串转数字->可统一使用GetNumber()
- */
- explicit operator int();
- explicit operator unsigned long();
- explicit operator long long();
- explicit operator unsigned long long();
- public:
- bool Out(const char* _str = nullptr); //扩展-》便捷打印函数-》可在任何Winows应用程序中输出CMD文本。留空默认打印本对象文本
- int PopMsg(const char* _str = nullptr, const char* _title = "提示", const int _icon = 0x40L, HWND _hwnd = nullptr);//扩展-》以信息框的形式显示本对象文本
- long long GetNumber(); //本类数据转为数字返回,遇非数字0~9后返回
- const char* GetBuffer(); //获取ansic数据指针
- int GetLength(); //返回本对象ansic字符长度,不带终止符
- int GetLength(const char* _str); //扩展-》获取外部输入ansic字符长度,不带终止符
- int GetBufferW(wchar_t* _buffer); //返回实际写入输出缓冲区的字节数,请确保输入缓冲区够大,可以使用GetLengthW()获取宽字节数据长度
- int GetLengthW(); //返回本对象宽字符带终止符长度
- int GetLength(const wchar_t* _str); //扩展-》获取输入宽字符长度,带终止符
- int Find(const char* _str); //从头部(0)开始寻找指定文本,找到返回首个文本所在位置,没找到返回-1
- int Find(const char* _str, int _start); //从指定位置开始寻找指定文本,找到返回首个文本所在位置,没找到返回-1
- int ReverseFind(const char* _str); //从末尾倒序开始寻找指定文本,找到返回顺序的首个文本所在位置,没找到返回-1
- int ForwardFind(const char _cs, int _start = 0); //从头部0开始寻找一个字符,找到返回顺序的首个字符所在位置,没找到返回-1。
- int ReverseFind(const char _cs); //从末尾倒序开始寻找一个字符,找到返回顺序的首个字符所在位置,没找到返回-1
- const char Getbyte(int _start); //从头开始取指定位置字符一个字符,找到返回取回的字符,越界返回带符号 -1
- WYString Left(int _length); //WYString 取左边文本(取出长度),取出文本需要接收
- WYString Right(int _length); //WYString 取右边文本(取出长度),取出文本需要接收
- WYString Mid(int _startPos, int _endPos); //WYString 取中间文本(起始位置,结束位置),取出文本需要接收
- WYString operator()(const int _start, const int _length); //取中间文本(例如:(WYString str = 12345;str[0起始位置,5长度];//将返回12345)失败返回“”,取出文本需要接收
- WYString Mid(const char* _lStr, const char* _rStr); //WYString 取中间文本(左边文本,右边文本),取出文本需要接收
- WYString& Trim(); //WYString& 删除本对象首位空白(),可接收返回新数据,也可不接受,因为是对当前数据进行了更新
- WYString& TrimAll(); //WYString& 删除本对象全部空白文本(),可接收返回新数据,也可不接受,因为是对当前数据进行了更新
- WYString& TrimLeft(); //删除本对象左边所有空白字符,可接收返回新数据,也可不接受,因为是对当前数据进行了更新
- WYString& TrimRight(); //删除本对象尾部所有空白字符,可接收返回新数据,也可不接受,因为是对当前数据进行了更新
- int FindAppearCount(const char* _text, int* _pos = nullptr);//查找指定文本出现的总次数,参数2(默认 NULL)是否返回每个所在位置,可以GetLength()确定缓存大小
- int Replace(const char* _sc, const char* _cNew); //int Replace(欲替换的文本, 新文本),替换指定文本,返回已经替换成功的个数,没有替换任何文本返回0
- int Remove(const char* _text); //在实例中删除所有指定的文本,返回删除的个数,如果未改变 返回 0
- WYString& MakeUpper(); //将WYString对象所有字母转换为大写字符。返回数据可接可不接
- WYString& MakeLower(); //将WYString对象所有字母转换为小写字符。返回数据可接可不接
- int Delete(const int _index, const int _count = 1); //删除字符串中的一个或多个字符,从给定索引处的字符开始删除,默认为 1 (宽字符需要注意 是 2字节),返回删除后的字符串的新长度。无改变返回0。越界返回 -1
- int Insert(const int _index, const char* _text); //在字符串中的给定索引处插入单个字符或字符串。越界返回 -1
- };
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|