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;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 关注
    #include <stdio.h>
    #include <stdlib.h>
    #include <graphics.h>
    
    void move();
     int main(){
     	move();
     	return 0;
     }
     
     void move(){
     char str[30] = "Hello World!";
     	int x1=10,x2=600,count;
     	char ch1,ch2,ch3;
     	
    	 //移动文本:输入要移动文本的起始位置和字符个数,以及要移动到的目的位置,实现文本的移动,移动后显示当前内容。
    	initgraph(800,600,0);
    	//设置矩形边框颜色 
    	setcolor(EGERGB(255,255,255));
    	outtextxy(0,0,"请输入3位的起始位置"); 	
    	ch1 = getch();
    	ch2 = getch();
    	ch3 = getch();
    	x1 = (ch1-48)*100 + (ch2-48)*10 + (ch3-48);
    	outtextxy(0,20,"请输入3位的结束位置"); 	
    	ch1 = getch();
    	ch2 = getch();
    	ch3 = getch();
    	x2 = (ch1-48)*100 + (ch2-48)*10 + (ch3-48);
    	outtextxy(0,40,"请输入2位的字符个数"); 
    	ch1 = getch();
    	ch2 = getch();
    	count = (ch1-48)*10 + (ch2-48);
    	
    	//设置文字的字体
    	setfont(30,30,"宋体") ;	
    	while(x1<x2){
    		setcolor(EGERGB(255,255,255));
    		outtextxy(x1+=10,300,str); 
    		delay_ms(100);
    		setcolor(EGERGB(0,0,0));
    		bar(0,300,x2,340);
    	}
    	//关闭图形界面
    	closegraph(); 
     	
     }
    评论
  • CSDN专家-link 2021-06-14 21:51
    关注

    是指输入一段字符串,然后将该字符串中指定位置和长度的子串移动到字符串的另一个位置吗?

    评论
  • 有问必答小助手 2021-06-17 09:26
    关注

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 前端的3d饼图不知道用啥框架做的
  • ¥15 三个问答题,很简单,都是关于网络安全
  • ¥15 算法问题 斐波那契数 解答
  • ¥20 JAVAscript
  • ¥15 VS2019 SPY++ 获取句柄操作
  • ¥15 Facebook 获取广告
  • ¥15 PID算法的输出结果如何转换成pwm
  • ¥15 java文本解密算法
  • ¥15 有没有办法等sql查询完成后执行下一步操作
  • ¥15 android8以下机子自动连接指定wifi热点