给定一个字符串S和一个字符x,编写递归算法实现下列功能:
(1)检查x是否在s中;
(2)计算x在s 中出现的次数;
(3)删除s中所有x.
#include<iostream>
using namespace std;
//string S="qabcdefghijklmnopqrstuvwxyzxwzluzwswswsmde";
char s[1000];
int Time(char *c,char x){
int count=0;
if(*c){//如果c指针存在
if((*c)==x)
count++;
count+=Time(c+1,x);//
}
return count;
}
void DeleteAction(char *c);//函数声明
void Delete(char *c,char x){
int flag=0;//
if(*c){//如果c指针存在
if((*c)==x){
flag=1;
DeleteAction(c);
// Delete(c+1,x);//
}
if(flag==1){//删除后重新确定
Delete(c,x);
}else//没有删除直接进入下一个
Delete(c+1,x);
}
}
void DeleteAction(char *c){
int i=0;
while(c[i]!='\0'){//元素不为空,也就是不是最后一个
c[i]=c[i+1];
i++;
}
}
int main(){
/*if(Exit(S,'x')){
cout<<"存在x"<<endl;
}*/
cout<<"输入字符串:"<<endl;
cin>>s;
cout<<"输入一个字符:"<<endl;
char cc;cin>>cc;
if(Time(s,cc)){
cout<<"存在字符"<<cc<<"\n"<<"出现的次数为"<<Time(s,cc)<<endl;
}
// cout<<Time(s,cc);//
cout<<"请输入需要删除的字符:"<<endl;
char a;cin>>a;
Delete(s,a);
cout<<s<<endl;
return 0;
}