编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符


//编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符

#include<stdio.h>
#include<string.h>
#define N 10
void fun(char s[N],int i,int n)
{   
     strcpy(s+i-1,s+i+n-1);
	 printf("%s",s);
}
int main()
{
	char str[N];
  int i,n;
  printf("任意输入一个字符串:\n");
  scanf("%s",str);
  printf("输出你刚才输入的字符串:::\n");
  printf("%s\n",str);
  printf("请输入你要从什么位置删除这个元素\n");
  scanf("%d",&i);
  printf("请问您要删除连续多少个字符:\n");
  scanf("%d",&n);
  fun(str,i,n);
  return 0;
}

 

第二种方法不用系统函数strcpy实现的。


#include<stdio.h>
#include<string.h>
#define N 10
void fun(char s[N],int i,int n)
{   
     //strcpy(s+i-1,s+i+n-1);换一种方法实现来实现
      int j=i-1,k,x=strlen(s);
   for(;(j+n<x)&&(j<i+n);j++)
	
		 *(s+j)=*(s+j+n);
      s[j]='\0';
	 printf("%s",s);
}
int main()
{
	char str[N];
  int i,n;
  printf("任意输入一个字符串:\n");
  scanf("%s",str);
  printf("输出你刚才输入的字符串:::\n");
  printf("%s\n",str);
  printf("请输入你要从什么位置删除这个元素\n");
  scanf("%d",&i);
  printf("请问您要删除连续多少个字符:\n");
  scanf("%d",&n);
  fun(str,i,n);
  return 0;
}

 

啊啊啊,最后一种方法好像有点错误。。。求指正!!!!

 

//编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符

#include<stdio.h>
#include<string.h>
#define N 10
void fun(char s[N],int i,int n)
{   
     //strcpy(s+i-1,s+i+n-1);换一种方法实现来实现
//把从i-1开始到n+i-2
	int j=0,b[N],k=0;
	while(s[j]!='\0')
	{
		if((j>=i-1)&&j<=(i+n-2)&&(i+n)<strlen(s))
		{   j++;
			continue;	
		}
		else
		{
			 b[k++]=s[j];
			 j++;

		}
	}
	printf("%s",b);

}
int main()
{
	char str[N];
  int i,n;
  printf("任意输入一个字符串:\n");
  scanf("%s",str);
  printf("输出你刚才输入的字符串:::\n");
  printf("%s\n",str);
  printf("请输入你要从什么位置删除这个元素\n");
  scanf("%d",&i);
  printf("请问您要删除连续多少个字符:\n");
  scanf("%d",&n);
  fun(str,i,n);
  return 0;
}

有点头大,,搞出来的小伙伴记得指正下

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sustyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值