递归方法:编写一个函数delchar(char *s1,char s2), 从字符串s1中删去与字符s2相同的字符。用main()测试
#include<iostream.h>#include<string.h>voiddelchar(chars[i],intj){intn=strlen(s);if(s[...
# include<iostream.h>
#include <string.h>
void delchar(char s[i],int j)
{int n=strlen(s);
if(s[j]!='\0')
s[j]=delchar(s[j+1],j+1);
else s[j]=s[n];
}
void main(){
char s1[80];
char a;
cout<<"请输入一串字符:";cin>>s1;
cout<<"请输入一个字符:";
cin>>a;
for(int i=0;s1[i];)
{ if(s1[i]==a)
delchar (*s1,i);
}
cout<<"删去"<<a<<"后的字符串为:"<<s1<<endl;}
怎么不对? 展开
#include <string.h>
void delchar(char s[i],int j)
{int n=strlen(s);
if(s[j]!='\0')
s[j]=delchar(s[j+1],j+1);
else s[j]=s[n];
}
void main(){
char s1[80];
char a;
cout<<"请输入一串字符:";cin>>s1;
cout<<"请输入一个字符:";
cin>>a;
for(int i=0;s1[i];)
{ if(s1[i]==a)
delchar (*s1,i);
}
cout<<"删去"<<a<<"后的字符串为:"<<s1<<endl;}
怎么不对? 展开
2个回答
展开全部
void delchar(char *s1,char s2)
{
char *p = s1;
char *q = s1;
while(*q!='\0')
{
q++;
if(*p==s2)
{
continue;
}
else
{
p++;
}
}
if(p==q)
{
return;
}
while(p!=q)
{
*p=*(p+1);
p++;
}
delchar(s1,s2);
}
void main()
{
char a[20]="abccbcdcbcdcmdc";
delchar(a,'c');
cout<<a<<endl;
}
输出结果:abbdbdmd
{
char *p = s1;
char *q = s1;
while(*q!='\0')
{
q++;
if(*p==s2)
{
continue;
}
else
{
p++;
}
}
if(p==q)
{
return;
}
while(p!=q)
{
*p=*(p+1);
p++;
}
delchar(s1,s2);
}
void main()
{
char a[20]="abccbcdcbcdcmdc";
delchar(a,'c');
cout<<a<<endl;
}
输出结果:abbdbdmd
2012-05-31
展开全部
Good luck
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询