前言
这篇文章主要实现C语言的删除与替换
一、代码
#include<stdio.h>
#include<string.h>
int del(char a[]);
int ab(char a[],char b[],int count);
int cd(char a[],char b[],char c[],int w,int u,int v);
int main()
{
int d,count=0,i=0,w=0,u=0,v=0;
char a[1000],b[1000],c[1000];
printf("请选择1或2\n");
printf("1:删除,2:替换\n");
scanf("%d",&d);
switch(d){
case 1: printf("请输入原字符串a和删去字符串b,以空格间隔\n");
scanf("%s",a);
scanf("%s",b);
while(b[i]){ count++;i++;}
ab(a,b,count);
break;
case 2:printf("请输入原字符串a,被替代字符串b,替代字符串c,以空格间隔\n");
scanf("%s",a);
scanf("%s",b);
scanf("%s",c);
while(a[i]){ w++;i++;}
i=0;
while(b[i]){ u++;i++;}
i=0;
while(c[i]){ v++;i++;}
cd(a,b,c,w,u,v);
}
return 0;
}
int ab(char a[],char b[],int count)
{
int i,j,k,m;
for(j=0;a[j];j++)
{
if(a[j]==b[0])
{
for(m=0,k=0,i=j;i<j+count;i++,k++)
if(a[i]==b[k]) m++;
if(m==count)
{
for(i=j;i<j+count;i++)
a[i]=' ';
}
}
}
del(a);
puts(a);
return 0;
}
int del(char a[])
{
char *p1;
p1=a;
while(*p1!='\0')
{
if(*p1==' ') strcpy(p1,p1+1);
else p1++;
}
return 0;
}
int cd(char a[],char b[],char c[],int w,int u,int v)
{
int i,j,k,m;
for(j=0;a[j];j++)
{
if(a[j]==b[0])
{
for(m=0,k=0,i=j;i<j+u;i++,k++)
if(a[i]==b[k]) m++;
if(m==u)
{
for(i=w-1;i>=j;i--)
a[i+v-u]=a[i];
w=w+v-u;
a[w]='\0';
for(k=0,i=j;i<j+v;i++,k++)
a[i]=c[k];
}
}
}
puts(a);
return 0;
}
总结
代码运行成功,就可以实现字符串的删除与替换功能。