qq_58045315 2021-06-14 21:45 采纳率: 100%
浏览 37
已采纳

一道C语言编程题,求解答,谢谢!

 

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2021-06-14 22:31
    关注
    #include<stdio.h>
    #include <string.h>
    //将s1串中起始位置n,长度l的子串移动到位置m处
    char * movetext(char *s1,int n,int l,int m)
    {
    	int len = 0;
    	int i,j;
    	for(i=0;s1[i] != 0;i++) //计算字符串s1的长度
    		len++;
    	char *p = new char[l];
    	memcpy(p,s1+n,l); //存储子串
    	for(i=0;i<len-n-l;i++)  //子串后的字符全部前移l个位置
    		*(s1+n+i) = *(s1+n+l+i);
    	len -= l;  //s1删除子串后的长度
    	if(m >= len-1) //如果插入位置在s1的尾部,则直接合并即可
    	{
    		for(i=0;i<l;i++)
    			*(s1+len+i) = *(p+i);
    	}
    	else //插入位置之后的字符后移l个位置
    	{
    		for(i=len-1;i>=m;i--)
    			*(s1+i+l) = *(s1+i);
    		for(i=0;i<l;i++)
    			*(s1+m+i) = *(p+i);
    	}
    	delete []p;
    	return s1;
    }
    
    
    int main()
    {
    	char s1[] = "hello world,I love you!";
    	char *p = movetext(s1,2,2,3);
    	printf("%s",p);
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)