ghjhkniob 2020-05-11 17:35 采纳率: 93.3%
浏览 245
已采纳

56. 程序改错C语言以下程序中函数cutpaste功能是?

56.
程序改错:
【要求】
1.按以下程序功能改正程序的错误。
2.可以修改语句中的一部分内容,调整语句次序,增加变量声明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。
【程序功能】
以下程序中函数cutpaste功能是将line指向的数组中从下标为source开始的连续len个字符作为一个子串复制到一个临时数组中,并将这些字符从line指向的数组中删除;再将临时数组中子串追加到line指向数组中字符串的尾部。
【测试数据与运行结果】
测试字符串:"this is a test."
source=5, len=2
输出:this a test. is
【含有错误的源程序】
#include
#include
#include
void cutpaste(char *line,int source,int len);
{
char t[20];
int i,length=strlen(line);
if(source>=length)return;
for(i=0;i<len&&i<19&&source+i<length;i++)
t[i]=line[source+i];
t[0]='\0';

strcpy(&line[source],&line[source+i]);
strcpy(line,t);

}
int main()
{
char line[80]="this is a test.";

cutpaste(line[80],5,2);
puts(line);
getch();
return 0;
}
请改正并认真测试程序的正确性。将源代码以文本方式提交,不要直接提交文件。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-12 10:44
    关注

    如果问题解决,请点下采纳

    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    void cutpaste(char *line,int source,int len)
    {
        char t[20];
        int i,length=strlen(line);
        if(source>=length)return;
        for(i=0;i<len&&i<19&&source+i<length;i++)
            t[i]=line[source+i];
        t[i]='\0';
    
        strcpy(&line[source],&line[source+i]);
        strcpy(line+length-len,t);
    
    }
    int main()
    {
        char line[80]="this is a test.";
    
        cutpaste(line,5,2);
        puts(line);
        getch();
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献