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

2020-05-12 16:28发布

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


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


2条回答
爱梦 - 拿来吧你
2楼 · 2020-09-11 09:53

【要求】
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
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;
}

靓猴一枚
3楼 · 2021-12-03 10:40

cut一般格式为:

cut [options] file1 file2

下面介绍其可用参数

-c list  指定剪切字符数

-f field  指定剪切域数

-d 指定与空格和tab键不同的域分割符

-c  用来指定剪切范围,如下所示:

-c1-50   剪切前50个字符

-c1,5-7  剪切第1个字符,然后是5到第7个字符

-f 格式与-c相同

-f 1,5  剪切第1域,第5域

-f1,10-12  剪切第1域,第10域到第12域

设有pers文件 $pg pers

P.Jones:Office Runner:ID897
Round:UNIX admin:ID666
Clip:Personal Chief:ID982

抽取pers的第3域

$cut -d: -f3 pers

抽取pers的第1和第3域

$cut -d: f1,3 pers

获取/etc/passwd中注册名和根目录,可抽取其域1和域6

$cut -d: -f1,6 /etc/passwd

root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin
games:/usr/games
man:/var/cache/man
lp:/var/spool/lpd
mail:/var/mail
news:/var/spool/news
uucp:/var/spool/uucp
proxy:/bin
www-data:/var/www
backup:/var/backups
list:/var/list
irc:/var/run/ircd
gnats:/var/lib/gnats
nobody:/nonexistent
libuuid:/var/lib/libuuid
syslog:/home/syslog
messagebus:/var/run/dbus
avahi-autoipd:/var/lib/avahi-autoipd
avahi:/var/run/avahi-daemon
couchdb:/var/lib/couchdb
usbmux:/home/usbmux
speech-dispatcher:/var/run/speech-dispatcher
kernoops:/
pulse:/var/run/pulse
rtkit:/proc
saned:/home/saned
hplip:/var/run/hplip
gdm:/var/lib/gdm
dongjichao:/home/dongjichao
haldaemon:/var/run/hald
festival:/home/festival
mldonkey:/var/lib/mldonkey

获取系统用户信息

$who -u | cut -c1-8

==========================================================================================================

paste用法

      paste将按行对不同文件行信息放在一起。缺省情况下,paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将

成为域分隔符

      paste格式为:

      paste -d -s -file1 file2

      选项含义如下:

      -d   指定不同于空格或tab键的域分隔符。例如使用@分隔符,使用-d@

     例如有两个文件

     $cat pas1

      ID897
      ID666
      ID982

    $cat pas2
    P.Jones
    S.Round
    L.Clip

    $paste pas1 pas2结果为

    ID897    P.Jones
    ID666    S.Round
    ID982    L.Clip

    $paste pas2 pas1结果为

    P.Jones    ID897
    S.Round    ID666
    L.Clip    ID982

    $paste -d:  pas2 pas1

    P.Jones:ID897
    S.Round:ID666
    L.Clip:ID982


    要合并两行,而不是按行粘贴,可用-s选项

    $paste -s pas2 pas1

    P.Jones    S.Round    L.Clip
    ID897    ID666    ID982

    paste命令管道输入

    $ls | paste -d " " - - - -        #表示每行4个目录,并且用空格分开

     append.sed array1.sh change.sed data.f
     delete_me_and_die forfind.sh forparam2.sh getip2.sh
     grade.txt insert.sed lib log.txt
     mustpreset2.sh mustpreset.sh myfile.txt myoutfile
     names.txt parts.txt pas1 pas2
     pers poz2.sh prime.sh quote.txt
     results.out unset1.sh video.txt whileread.sh 
     $ls | paste -d " " -    #每行显示一个目录列表

     append.sed
     array1.sh
     change.sed
     data.f
     delete_me_and_die
     forfind.sh

      .........
       

ID897
ID666
ID982


相关问题推荐

  • 回答 4

    public Fungus.Flowchart myflowchart; //把你的对话流程在Inspector窗里拖进去myflowchart.GetIntegerVariable(Integer变量名);其他变量类型也有相应方法,要更改用set方法即可

  • 回答 5

    string sourceFile = @C:\Users\wangwenping\source\repos\GetActivePro\ConsoleApp1\bin\Debug\;string zipfileName = ./debug;ZipFile.CreateFromDirectory(sourceFile, zipfileName);//源路径,目标路径

  • 回答 3

    TCP没有自身解析结束符的方法,只能通过接收来的数据,自己自行解析数据。我的方法是:通过字符串的IndexOf()方法和Substring()方法解析数据,并分段放在list列表中,进入lock之前,逐个提取list中的数据即可实现。...

  • 回答 19

    弱类型语言指的是一种没有很强类型概念的语言,如vb,而强类型语言指的是有很强类型概念的语言,如c(虽然c允许类型转换,但是相对来讲比vb要是强类型),弱类型的好处在于程序员不需要过多的着重与类型的转换,而强类型的好处在于程序可以有条不紊的执行,而...

  • 回答 14

    数据类型:1、基本数据类型C#拥有比C/C++或者Java更广泛的数据类型。这些类型是bool、daobyte、ubyte、short、ushort、int、uint、long、ulong、float、double和decimal。像Java一样,所有这些类型都有一个固定的大小。又像C和C++一样,每个数据类型都有有符...

  • 回答 6

    1、基本数据类型C#拥有比baiC/C++或者Java更广泛的数据类型。这些类型是bool、dubyte、ubyte、short、ushort、int、uint、long、ulong、float、double和decimal。像Java一样,所有这些类型都有一个固定的大小。又像C和C++一样,每个数据类型都有有符号和无符...

  • 回答 1

    根据题主的角色应该有不同的选择。一、在校大学生1. 电子类专业选择C开始学习,未来职业选择可以是嵌入式开发。语言只是工具,重点要理解硬件原理。如果对非嵌入式开发也有兴趣,未来可以以C的基础再扩展学习Java等语言。2. 网络工程、计算机类专业首先学C,...

  • 回答 3

    可以啊,可以考很多计算机二级的证书,不同方向都可以考,只是每次报考是有科目数量要求的吧

  • 回答 1

    个人觉得还是Java语言好一些, 他的应用面广,而且学习难度低,学出来以后就业找工作会好很多

  • 回答 1

    C语言并没有比java难,C++确实比java难。与其说难,倒不如说麻烦。java之所以比较简单主要是因为没有指针。

  • 回答 3

    无论是你计算机专业还是非计算机专业,无论你学习C语言的目的是为了考试考证还是以后的工作. 学习好C语言都是一件很好的事,编程语言那么多,C语言永远是最好的入门语言,对于考试考证的同学来说,学习C语言可以锻炼自己的逻辑能力,学会把一个大的问题化解成几个小...

  • 回答 1

    1.先学C,C语言非常经典,得一个月吧,学会c后,再学python一个下午就可以学会,java大概一个星期。2.然后漫长的熟悉库函数和各种技术的阶段,唯有多练,否则永远编不出任何有价值的程序。...

  • 回答 2

    两个语言是没有可比性的.首先c语言是编程语言,而vbs的脚本语言,脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.从功能来说肯定是c语言更强大和全面...

  • 回答 2

    因为爬虫用python写有多个优点:    1.各种爬虫框架,方便高效的下载网页;    2.多线程、进程模型成熟稳定,爬虫是一个典型的多任务处理场景,请求页面时会有较长的延迟,总体来说更多的是等待。    3.GAE 的支持,当初写爬虫的时候刚刚有 GAE,而且...

  • 回答 1

            用C语言开发WEB,称ISAPI,一般人可能做不起来,有点麻烦。唯一是速度很快,别人看不到你的源码,掌握了编程套路,也可以开发应用。          缺点:          1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,...

  • 回答 1

    不是必要条件,c是面向过程,c++面向对象,面向对象是为了更好的编程处理业务,学习c更有助于了解程序的运行机制,如果想了解更底层的可以看看汇编语言,可以知道计算机如何运算。...

没有解决我的问题,去提问