【C】echo命令的实现

《c programming language》中讲到:

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

<nobr> echohello,world </nobr>
将打印下列输出:
<nobr> hello,world </nobr>
按照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");
}

运行结果:

全部评论

相关推荐

10-28 15:45
门头沟学院 C++
西南山:海康威视之前不是大规模裁员吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务