求C++课程设计-字符串操作 源代码 要求实现字符串类的各种操作 15

要求实现以下操作:字符串类对象的输入输出;字符串的长度;字符串的连接;字符串的考贝;字符串的减法;子串在主串中的定位;子串替换功能;... 要求实现以下操作:字符串类对象的输入输出 ;字符串的长度 ;字符串的连接 ;字符串的考贝 ;字符串的减法 ;子串在主串中的定位 ;子串替换功能 ; 展开
 我来答
离离原上花开
2010-06-25 · TA获得超过6856个赞
知道大有可为答主
回答量:1923
采纳率:0%
帮助的人:715万
展开全部
#include "stdafx.h"
#define NULL 0
#include <string.h>
#include <iostream.h>
class CYString
{
public:
CYString()
{
p_Data=new char[1];
p_Data[0]='0';
}
CYString(const/*指针指向的内容不可变*/ char* const/*指针不可变*/ pStr)
{
if(pStr==NULL)
{
p_Data=new char[1];
p_Data[0]='\0';
}
else
{
p_Data=new char[strlen(pStr)+1];
if(p_Data==NULL)
{
p_Data=new char[1];
p_Data[0]='\0';
}
if(strcpy(p_Data,pStr)==NULL)
{
p_Data=new char[1];
p_Data[0]='\0';
}
}
}
CYString(const CYString&m_Str)
{
if(&m_Str==this)//判断是否是自身
return;

p_Data=new char[strlen(m_Str.p_Data)+1];//本调用本类中的私有成员.
strcpy(p_Data,m_Str.p_Data);
}
~CYString(){};

CYString&operator =(const CYString&m_Str);
CYString operator +(const CYString&m_Str);
friend ostream& operator <<(ostream &os,const CYString &m_Str);

private:
char *p_Data;

};
CYString&CYString::operator =(const CYString&m_Str)
{
if(p_Data!=NULL)
delete []p_Data;
p_Data=new char[strlen(m_Str.p_Data)+1];//本调用本类中的私有成员.
strcpy(p_Data,m_Str.p_Data);
return *this;
}
CYString CYString::operator +(const CYString&m_Str)
{
CYString m_Tem;
int m_Size=strlen(m_Str.p_Data)+strlen(p_Data)+1;
if(m_Tem.p_Data!=NULL)
{
delete []m_Tem.p_Data;
m_Tem.p_Data=NULL;
}

m_Tem.p_Data=new char[m_Size];
m_Tem.p_Data=strcat(p_Data,m_Str.p_Data);

return m_Tem;
}
ostream & operator<<(ostream &os,const CYString &m_Str)
{
return os<<m_Str.p_Data<<endl;
}

int main(int argc, char* argv[])
{
CYString str("XXX");
CYString str1("YYY");
str+str1;

cout<<str;
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式