📄 match.cpp
字号:
#include<String>
#include <iostream>
using namespace std;
const int maxlen=20;
class String
{
public:
String(const String &ob);
String();
~String(){delete[]ch;}
int operator !()const{return curlen==0;}
int operator ==(const String &ob) const{return strcmp(ch,ob.ch)==0;}
void find();
void change();
int m;
private:
int curlen;
char *ch;
};
String::String(const String &ob)
{
ch=new char[maxlen+1];
if(!ch){cerr<<"Allocation Error\n";exit(1);}
curlen=ob.curlen;
strcpy(ch,ob.ch);
}
String::String()
{
ch=new char[maxlen+1];
if(!ch){cerr<<"Allocation Error\n";exit(1);}
curlen=0;
ch[0]='\0';
}
void String::find()
{
char str[21]="everythingisallright";
int i=0;char *p=ch,*s=str;
m=0;
cout<<"目标字符串为"<<str<<endl;
cout<<"请输入你所想要查找的字符串,长度小于或等于20"<<endl;
cin>>ch;
curlen=strlen(ch);
while(i<=20-curlen)
if(*p++==*s++)
{
if(!*p) {m=1;cout<<"匹配成功,你所要查找的字符串的第一个字符在目标字符串的第"<<i+1<<"个位置开始"<<endl;}
}
else{i++;s=str+i;p=ch;}
if(m==0) cout<<"对不起,你所查找的字符串不在其中"<<endl;
}
void String::change()
{
char n;int i=0,j;
char str[21]="everythingisallright";
cout<<"请输入将你查找出来的字符串改变后的字符串,长度等于你所查找的字符串"<<endl;
while(i<=20-curlen)
{
for(j=0;j<=20-curlen;j++)
{
if(ch[j]!=str[j+i])
{i++;break;}
else {cin>>n;str[j+i]=n;}
}
}
cout<<str<<endl;
}
void main()
{
String a;
a.find();
if(a.m==1)
a.change();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -