环境配置
codeblocks
windows10
项目结构
代码
SqStringClass.h
#ifndef _SQSTRINGCLASS_H_
#define _SQSTRINGCLASS_H_
#include <iostream>
class SqStringClass
{
public:
/* 静态数据成员 */
static const int MAXSIZE;
/* 构造函数, 析构函数 */
SqStringClass(void);
explicit SqStringClass(const SqStringClass &str);
explicit SqStringClass(const char *str);
~SqStringClass(void);
/* 成员函数 */
int StrLength(void) const;
SqStringClass &StrIns(int i, const char *str) const;
SqStringClass &StrIns(int i, const SqStringClass &str) const;
SqStringClass &StrDel(int i, int len) const;
SqStringClass &StrSub(int i, int len) const;
SqStringClass &StrRep(int i, int len, const char *str) const;
SqStringClass &StrRep(int i, int len, const SqStringClass &str) const;
void Display(void) const;
/* 成员运算符重载 */
SqStringClass &operator=(const SqStringClass &str);
SqStringClass &operator=(const char *str);
SqStringClass &operator+(const SqStringClass &str) const;
SqStringClass &operator+(const char *str) const;
char &operator[](int i);
operator char *(void) const;
/* 友元运算符重载 */
friend std::istream &operator>>(std::istream &in, SqStringClass &str);
friend std::ostream &operator<<(std::ostream &out, const SqStringClass &str);
protected:
private:
char *data;
int length;
};
std::istream &operator>>(std::istream &in, SqStringClass &str);
std::ostream &operator<<(std::ostream &out,