【C】echo命令的實現
阿新 • • 發佈:2019-02-03
《c programming language》中講到:
在支援C 語言的環境中,可以在程式開始執行時將命令列引數傳遞給程式。呼叫主函式main
時,它帶有兩個引數。第一個引數(習慣上稱為argc,用於引數計數)的值表示執行程式時命令列中引數的數目;第二個引數(稱為argv,用於引數向量)是一個指向字串陣列的指標,其中每個字串對應一個引數。我們通常用多級指標處理這些字串。最簡單的例子是程式echo,它將命令列引數回顯在螢幕上的一行中,其中命令列中各引數之間用空格隔開。也就是說,命令
語言的約定,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");
}
執行結果: