当前位置: 首页 > news >正文

世界新闻网是什么网站/怎么样建网站

世界新闻网是什么网站,怎么样建网站,怎样把自己的网站上传,外贸用免费网站推广 有效果前言 心血来潮想把string给实现一下,结果实现到一半失去兴趣,就把代码贴出来给大家参考一下吧,代码比较简单但是基本操作是没问题的 类的定义 class Mystring{ public:Mystring(const char* str NULL);//通用构造函数Mystring(const Mystri…

前言

        心血来潮想把string给实现一下,结果实现到一半失去兴趣,就把代码贴出来给大家参考一下吧,代码比较简单但是基本操作是没问题的

 

类的定义

class Mystring{
public:Mystring(const char* str = NULL);//通用构造函数Mystring(const Mystring& str);//拷贝构造~Mystring();//析构函数Mystring& operator=(const char* str);//赋值运算符,输入为字符串,返回引用Mystring& operator=(const Mystring& str);//赋值运算符,返回引用Mystring operator+(const Mystring& str) const;//+操作符,返回引用Mystring& operator+=(const Mystring& str);//+=操作符,返回引用bool operator!=(const Mystring& str);//!=操作符,返回引用bool operator<(const Mystring& str);//<操作符,返回引用char& operator[](int n) const;//下标操作符。返回引用bool operator==(const Mystring& str) const;//==运算符friend ostream& operator<<(ostream& os, const Mystring& s);//重载<<friend istream& operator>>(istream& is, Mystring& s);//重载>>int size() const;//字符串实际大小,不包括结束符const char* c_str() const;//将string转为char *bool empty();//检测字符串长度是否为0Mystring& substr(unsigned int begin, unsigned int len);//取子串void append(char c);//末尾追加字符private:char* data; //存放字符int length; //字符长度
};

函数实现

Mystring::Mystring(const char* str)//通用构造
{if (!str){//为空。String a()length = 0;data = new char[1];*data = '\0';}else{length = strlen(str);data = new char[length + 1];strcpy(data, str);}
}Mystring::Mystring(const Mystring& str)//拷贝构造,深拷贝
{length = str.size();data = new char[length + 1];strcpy(data, str.c_str());
}Mystring::~Mystring()
{delete[] data;data = NULL;length = 0;
}Mystring& Mystring::operator=(const char* str)
{if (!str){//为空length = 0;data = new char[1];*data = '\0';}else{length = strlen(str);data = new char[length + 1];strcpy(data, str);}return *this;
}Mystring& Mystring::operator=(const Mystring& str)
{if (this == &str) return *this;//赋值自身delete[] data;length = str.size();data = new char[length + 1];strcpy(data, str.c_str());return *this;
}
Mystring Mystring::operator+(const Mystring& str) const
{//新建对象包括新空间,拷贝两个数据,返回新空间Mystring newString;newString.length = length + str.size();newString.data = new char[newString.length + 1];strcpy(newString.data, data);strcat(newString.data, str.data);return newString;
}Mystring& Mystring::operator+=(const Mystring& str)
{length += str.size();char* newdata = new char[length + 1];strcpy(newdata, data);strcat(newdata, str.c_str());delete[] data;data = newdata;return *this;
}bool Mystring::operator!=(const Mystring& str)//!=操作
{if (length != str.size()) return true;return strcmp(data, str.c_str()) ? true : false;
}bool Mystring::operator<(const Mystring& str)//<操作
{return strcmp(data, str.c_str()) < 0;
}char& Mystring::operator[](int n) const
{//下标操作符,返回引用if (n >= length) {perror("下标越界!");return data[length - 1];//如果越界,返回最后一个字符}else return data[n];
}bool Mystring::operator==(const Mystring& str) const
{if (length != str.size()) return false;return strcmp(data, str.c_str()) ? false : true;
}ostream& operator<<(ostream& os, const Mystring& s)
{os << s.data;return os;
}
istream& operator>>(istream& is, Mystring& s)
{char buffer[9000];is >> buffer;s.data = buffer;s.length = strlen(buffer);return is;
}int Mystring::size() const
{return length;
}const char* Mystring::c_str() const
{return data;
}bool Mystring::empty() {return length == 0;
}
Mystring& Mystring::substr(unsigned int begin, unsigned int len) {char* newdata = new char[len + 1];data[begin + len] = '\0';for (int i = 0; i < len; i++)newdata[i] = data[begin + i];newdata[len] = '\0';delete[] data;data = newdata;length = len;return *this;
}
void Mystring::append(char c) {char* newdata = new char[length + 2];strcpy(newdata, data);newdata[length] = c;newdata[length + 1] = '\0';delete[] data;data = newdata;length++;
}

 

http://www.jmfq.cn/news/5029183.html

相关文章:

  • 正规网站优化公司/整站优化和关键词优化的区别
  • wordpress备份文章/seo站长网怎么下载
  • 免费小程序模板/windows优化大师要钱
  • 抖音网络工作室/宁波seo在线优化哪家好
  • 制作网站需要用什么软件/谷歌关键词搜索工具
  • 开源saas多用户建站系统/全网引流推广
  • 建设个网站需要什么/线上推广策划方案范文
  • 公司做网站 微信平台/推广app
  • 阳光保险官方网站/制作网页链接
  • 做教育网站挣钱/网络推广怎么赚钱
  • 管理咨询公司项目运作流程图/宁波企业seo服务
  • 遵义做网站公司/上海seo有哪些公司
  • 中国数据域名注册/点金推广优化公司
  • wordpress 活动网站/北京网络推广
  • 网站电线电话图怎么做/网络销售网站
  • 找人做菠菜网站需要多少钱/汕头网站建设优化
  • 湛江网站制作系统/长春网站建设模板
  • 做网站的人多吗/首页
  • 阿里巴巴网站如何做免费推广/seo项目经理
  • 做那种网站受欢迎/如何在百度上添加自己的店铺
  • 网站建设营销型/win7优化大师
  • 免费教育网站建设/网站seo好学吗
  • 网站哪个公司做的比较好/谷歌推广运营
  • 为什么不用h5做网站/51链
  • 北京人民政府门户网站/网络推广怎么做才有效
  • 钓鱼网站排名假冒建设银行最多/百度秒收录软件工具
  • 专教做美食的网站/公司网站注册流程和费用
  • python网站开发快吗/近期的重大新闻
  • 国外html5做的音乐网站/百度会员登录入口
  • 高端网站定制开发深圳/seo整站网站推广优化排名