【C】echo命令的实现

来源:互联网 发布:淘宝新手开直通车 编辑:程序博客网 时间:2024/06/06 01:10

《c programming language》中讲到:

在支持C 语言的环境中,可以在程序开始执行时将命令行参数传递给程序。调用主函数main
时,它带有两个参数。第一个参数(习惯上称为argc,用于参数计数)的值表示运行程序时命令行中参数的数目;第二个参数(称为argv,用于参数向量)是一个指向字符串数组的指针,其中每个字符串对应一个参数。我们通常用多级指针处理这些字符串。最简单的例子是程序echo,它将命令行参数回显在屏幕上的一行中,其中命令行中各参数之间用空格隔开。也就是说,命令

echohello,world
将打印下列输出:
hello,world
按照C
语言的约定,argv[0]的值是启动该程序的程序名,因此argc
的值至少为1。如果argc的值为1,则说明程序名后面没有命令行参数。在上面的例子中,argc的值为3,argv[0]、argv[1]和argv[2]的值分别为“echo”、“hello,”,以及“world”。第一个可选参数为argv[1],而最后一个可选参数为argv[argc-1]。另外,ANSI
标准要求argv[argc]的值必须为一空指针(参见图5-11)。
这里写图片描述

下面来实现 echo命令

版本1:

#include<stdio.h>int main(int argc,char *argv[]){    int i;    for(i=1;i<argc;i++)        printf("%s%s",argv[i],(i < argc-1)?" ":"");    printf("\n");    return 0;}

这里写图片描述

运行结果:
这里写图片描述

版本2

#include<stdio.h>int main(int argc,char *argv[]){    while(--argc)        printf("%s%s",*++argv,(argc > 1)? " ":"");    printf("\n");}

这里写图片描述

运行结果:
这里写图片描述

0 0
原创粉丝点击