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

免费咨询法律网络seo营销推广

免费咨询法律,网络seo营销推广,如何发布网站教程,网站建设谢辞MyString是一个自定义的字符串类&#xff0c;它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例&#xff1a; #include <iostream> #include <cstring>class MyString { private:char* m_data; // 用于存储字符串的字符数组int m_length…

MyString是一个自定义的字符串类,它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例:

#include <iostream>
#include <cstring>class MyString {
private:char* m_data; // 用于存储字符串的字符数组int m_length; // 字符串的长度public:// 默认构造函数MyString() {m_data = nullptr;m_length = 0;}// 带参构造函数MyString(const char* str) {m_length = strlen(str);m_data = new char[m_length + 1]; // +1 用于存储字符串结束符'\0'strcpy(m_data, str);}// 拷贝构造函数MyString(const MyString& other) {m_length = other.m_length;m_data = new char[m_length + 1];strcpy(m_data, other.m_data);}// 析构函数~MyString() {delete[] m_data;}// 获取字符串长度int length() const {return m_length;}// 获取字符串内容const char* c_str() const {return m_data;}// 重载赋值运算符MyString& operator=(const MyString& other) {if (this != &other) {delete[] m_data;m_length = other.m_length;m_data = new char[m_length + 1];strcpy(m_data, other.m_data);}return *this;}// 重载加法运算符MyString operator+(const MyString& other) const {MyString newString;newString.m_length = m_length + other.m_length;newString.m_data = new char[newString.m_length + 1];strcpy(newString.m_data, m_data);strcat(newString.m_data, other.m_data);return newString;}
};int main() {MyString str1("Hello");MyString str2(" World");MyString str3 = str1 + str2;std::cout << "str1: " << str1.c_str() << std::endl;std::cout << "str2: " << str2.c_str() << std::endl;std::cout << "str3: " << str3.c_str() << std::endl;return 0;
}

在上面的示例中,MyString类封装了一个字符数组m_data来存储字符串的内容,以及一个整数m_length来记录字符串的长度。它提供了默认构造函数、带参构造函数、拷贝构造函数和析构函数来管理字符串的内存。

MyString类还提供了一些成员函数,如length()用于获取字符串的长度,c_str()用于获取字符串的内容,以及重载的赋值运算符和加法运算符,使得可以方便地进行字符串的赋值和拼接操作。

在main函数中,我们创建了两个MyString对象str1和str2,并使用重载的加法运算符将它们拼接成一个新的字符串str3。最后,我们输出了这三个字符串的内容。

4 实例——MyString的实现

/* 
* C++ string 类的实现
* 1. 构造函数和析构函数
* 2. 字符串长度
* 3. 重载=运算符
* 4. 重载+=运算符
* 5. 重载<< >> 运算符
* 6. 重载比较运算符
* 7. 重载[]下标运算符
*/#include <iostream>
#include <cstring>
using namespace std;class MyString
{
private:char * str;int length;
public:// 长度int size ()const {return length;};char* getstr()const{return str;}// 默认构造函数MyString();// 字符串构造函数MyString(const char*);// 复制构造函数MyString(const MyString& b);// 重载等号运算符MyString& operator=(const MyString &b);// 重载+=运算符MyString& operator+=(const MyString &b);// 重载比较运算符bool operator<(const MyString &b);// 重载下标运算符char& operator[](const int &index) const ;// 重载输入输出操作friend ostream& operator<<(ostream& ,const MyString &b);~MyString();
};MyString::MyString()
{str = new char[1];str[0]='\0';length = 0;
}MyString::MyString(const char* b){if(b){length = strlen(b);str = new char[length+1];strcpy(str,b);}else{MyString();}
}
MyString::MyString(const MyString&b){length = b.size();if(length>0)str = new char[length+1];elseMyString();
}MyString& MyString::operator=(const MyString &b){if(&b == this){return *this;}delete[] str;length = b.size();str = new char[length + 1];strcpy(str,b.getstr());return *this;
}MyString& MyString::operator+=(const MyString&b){if(b.size()==0){return *this;}char* temp = new char[length+b.length+1];strcpy(temp,str);strcat(temp,b.getstr());delete[] str;str = temp;return *this;
}char& MyString::operator[](const int &index)const {if(index>length)return str[length];return str[index];
}bool MyString::operator<(const MyString &b){for(int i=0;i<length;i++){if(i>b.size())return false;if(b[i]>str[i])return true;if(b[i]<str[i])return false;}return true;
}MyString::~MyString()
{delete[] str;
}// 外部定义一个函数,内部声明为友元
ostream& operator<<(ostream &out,const MyString&b){out<<b.getstr();return out;
}int main()
{// 测试函数MyString s1,s2="123",s3,s4="456";s3=s2;s1=s2;s1+=s1;cout<<s1<<endl;cout<<s2<<endl;cout<<s3<<endl;cout<<(s3<s4)<<endl;cout<<endl;return 0;
}
http://www.ritt.cn/news/6842.html

相关文章:

  • 淮北网站建设优化设计答案大全
  • wordpress指定分类主动推送百度seo网络优化招聘
  • 黑龙江疫情最新消息今天国内seo公司哪家最好
  • 易搜网站建设宣传推广方案模板
  • 2008如何添加iis做网站公司seo是什么级别
  • 做三折页宣传册 网站百度帐号
  • 河南免费网站建设东莞做网站推广
  • 国外做做网站打开百度搜索
  • 电子商务网站规书要怎么做网络推广
  • 成都定制网站建小熊猫seo博客
  • 在哪个网站可以学做淘宝详情互联网广告优势
  • 怎样在谷歌上建设网站网页制作软件dw
  • 程建网seo快速排名工具
  • 城乡建设门户网站sem推广竞价托管公司
  • 如何做新闻网站中国制造网
  • 创意家居网站建设与管理百度推广客户端
  • 甘肃网络公司网站建设百度产品推广
  • 备案掉了网站会怎样网页快速收录
  • 佛山企业网站建设策划论坛推广平台有哪些
  • 营销网站建设公司网站托管服务商
  • 温州专业微网站制作公司哪家好seo优化推广多少钱
  • 崇安网站建设360搜索引擎首页
  • 免费网站自助制作郑州seo联系搜点网络效果好
  • 做包装盒效果图网站百度推广怎么提高关键词排名
  • 山西疫情最新数据什么是网站seo
  • 如何与老板谈网站建设发外链的平台有哪些
  • 网站怎么显示被k十大经典案例
  • 布吉做网站公司站长统计免费下载
  • 临沂医院手机网站建设创建网站需要多少资金
  • wordpress怎么发长文章windows优化大师下载