帮忙改程序...输入两个字符串s1和s2,在s1中删除任何s2中有的字符。
例如,s1:“abc123ad”,s2:“a1”,则输出“bc23d”。我是这么编的#include"stdio.h"#include"string.h"main(){i...
例如,s1:“abc123ad”,s2:“a1”,则输出“bc23d”。我是这么编的
#include"stdio.h"
#include"string.h"
main()
{int i,j,p;
char s1[80],s2[80];
gets(s1);
gets(s2);
for(i=0;i<strlen(s1);i++)
for(j=0;j<strlen(s2);j++)
if(s2[j]==s1[i])
for(p=i;p<strlen(s1);p++)
s1[p]=s1[p+1];
puts(s1);
}
但我测试输入aq33s
a3时
输出qs3,即s1有两个一样的连在一起并且s2中有这个字符就不行,怎么改啊?谢谢各位了 展开
#include"stdio.h"
#include"string.h"
main()
{int i,j,p;
char s1[80],s2[80];
gets(s1);
gets(s2);
for(i=0;i<strlen(s1);i++)
for(j=0;j<strlen(s2);j++)
if(s2[j]==s1[i])
for(p=i;p<strlen(s1);p++)
s1[p]=s1[p+1];
puts(s1);
}
但我测试输入aq33s
a3时
输出qs3,即s1有两个一样的连在一起并且s2中有这个字符就不行,怎么改啊?谢谢各位了 展开
展开全部
#include"stdio.h"
#include"string.h"
main()
{int i,j,p;
char s1[80],s2[80];
gets(s1);
gets(s2);
for(i=0;i<strlen(s1);i++)
for(j=0;j<strlen(s2);j++)
if(s2[j]==s1[i])
for(p=i;p<strlen(s1);p++)
{ s1[p]=s1[p+1];
puts(s1);}
puts(s1);
}
输出结果为:
qq33s
q333s
q333s
q33ss
q33s
q33s
q3ss
q3s
q3s
现在应该看得出那里出问题了,建议用新数组存放字符串
#include"string.h"
main()
{int i,j,p;
char s1[80],s2[80];
gets(s1);
gets(s2);
for(i=0;i<strlen(s1);i++)
for(j=0;j<strlen(s2);j++)
if(s2[j]==s1[i])
for(p=i;p<strlen(s1);p++)
{ s1[p]=s1[p+1];
puts(s1);}
puts(s1);
}
输出结果为:
qq33s
q333s
q333s
q33ss
q33s
q33s
q3ss
q3s
q3s
现在应该看得出那里出问题了,建议用新数组存放字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
再执行完s1[p]=s1[p+1]后直接用goto回到最开始的循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询