串相等
/*
【输入形式】输入 两个字符串
【输出形式】输出判断结果 是否相等
【样例输入】aaab
aaac
【样例输出】0
2021/4/10
*/
#include <iostream>
using namespace std;
struct LinkNode
{
char data;
LinkNode*next;
};
class LinkStringClass
{
LinkNode *head;
public:
LinkStringClass();
~LinkStringClass();
LinkStringClass &operator=(char*cstr);
friend bool StrEqueal(LinkStringClass&s,LinkStringClass&t);
};
LinkStringClass::LinkStringClass()
{
head=new LinkNode();
head->next=NULL;
}
LinkStringClass::~LinkStringClass()
{
LinkNode*pre,*p;
pre=head;
p=pre->next;
while(p!=NULL)
{
delete pre;
pre=p;
p=p->next;
}
delete pre;
}
LinkStringClass&LinkStringClass::operator=(char *cstr)
{
LinkNode*r=head,*p;
for(int i=0;cstr[i]!='\0';i++)
{
p=new LinkNode();
p->data=cstr[i];
r->next=p;
r=p;
}
r->next=NULL;
return *this;
}
bool StrEqueal(LinkStringClass&s,LinkStringClass&t)
{
LinkNode*p=s.head->next;
LinkNode*q=t.head->next;
while(p!=NULL&&q!=NULL)
{
if(p->data!=q->data)
return 0;
p=p->next;
q=q->next;
}
if(p==NULL&&q==NULL)return 1;
else return 0;
}
int main()
{
char a[100],b[100];
cin.getline(a,100);
cin.getline(b,100);
LinkStringClass t,s;
s=a;t=b;
cout<<StrEqueal(t,s)<<endl;
return 0;
}
将x替换成y
/*
【问题描述】设计一个算法Rep(s,x,y)将串s中的所有字符x替换成字符y。
【输入形式】输入串s x y
【输出形式】输出将s中所有x替换为y的结果
【样例输入】aaabbbaab
a
c
【样例输出】cccbbbccb
2021/4/13
*/
#include <iostream>
using namespace std;
struct LinkNode
{
char data;
LinkNode*next;
};
class LinkStringClass
{
LinkNode *head;
public:
LinkStringClass();
~LinkStringClass();
LinkStringClass &operator=(char*cstr);
void DispStr();
friend bool Rep(LinkStringClass&s,char x,char y);
};
LinkStringClass::LinkStringClass()
{
head=new LinkNode();
head->next=NULL;
}
LinkStringClass::~LinkStringClass()
{
LinkNode*pre,*p;
pre=head;
p=pre->next;
while(p!=NULL)
{
delete pre;
pre=p;
p=p->next;
}
delete pre;
}
LinkStringClass&LinkStringClass::operator=(char *cstr)
{
LinkNode*r=head,*p;
for(int i=0;cstr[i]!='\0';i++)
{
p=new LinkNode();
p->data=cstr[i];
r->next=p;
r=p;
}
r->next=NULL;
return *this;
}
void LinkStringClass::DispStr()
{
LinkNode*p=head->next;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}
cout<<endl;
}
bool Rep(LinkStringClass&s,char x,char y)
{
LinkNode*p;
p=s.head->next;
while(p!=NULL&&p->data!=x)
p=p->next;
if(p==NULL)return 0;
else
{
while(p!=NULL)
{
if(p->data==x)
p->data=y;
p=p->next;
}
return 1;
}
}
int main()
{
char a[100];
cin.getline(a,100);
LinkStringClass s;
s=a;
char x,y;
cin>>x>>y;
Rep(s,x,y);
s.DispStr();
return 0;
}