C语言,编写一个函数squeeze(s1,s2),能从字符串s1中删去所有与字符串s2中相同的字符。

 我来答
匿名用户
2012-03-27
展开全部
这是运用指针写的.可能你看不懂,但你可以把它收到你的函数库中,随时调用. int delchar(char *s1,char *s2){ int i=0,len,flag=0; char *p,*p1,*p2; len=strlen(s2); if(strlen(s1)<len) return 0; p=s1; p1=s2; while(*p){ i=0; if(*p!=*p1){ p++; flag=0; continue; } if(*p==*p1){ p2=p; while(*p1){ if(*p==*p1) i++; else break; p++; p1++; } } if(i==len){ *p2='\0'; break; } } strcat(s1,p); return 1; } main(){ char s[]="abcdefghijklm"; char s2[]="ghij"; puts(s); delchar(s,s2); puts(s); getch(); } ~
erweiyang
2012-03-29 · 超过11用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:27.5万
展开全部
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
void squeeze(char* s1, const char* s2)
{
int i=0;
int j=0;
for(i=0; i<strlen(s2); i++)
for(j=0; j<strlen(s1); j++)
{
if(s1[j]==s2[i])
{
s1[j]=' ';
//这里我把删除的字符用空格替换了,当然你也可以通过移位将后面的字符前移
}
}

}
int main()
{
char a[100], b[5];
scanf("%s%s",a,b);
printf("删除前:%s\n",a);
squeeze(a,b);
printf("删除后:%s\n",a);
system("pause");
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式