0
点赞
收藏
分享

微信扫一扫

C语言学习日志1--字符串的删除与替换

秀儿2020 2022-02-04 阅读 22

前言

这篇文章主要实现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;		
}

总结

代码运行成功,就可以实现字符串的删除与替换功能。

举报

相关推荐

0 条评论