C語言int main(int argc, char** argv)淺析及例項
阿新 • • 發佈:2021-02-06
目錄
argc, argv含義
argc和agrv用於命令列執行時傳遞引數
argc為int型,表示傳送給main函式的命令列引數的個數,預設為1
argv[]為char*型,該字元陣列每個元素指向一個引數,其中argv[0]表示執行的程式的全路徑名,其他argc-1個引數分別由使用者給出
一個例項
今天做C語言題目時,碰到這麼一個題:
由控制檯開啟程式,附帶n個引數,將引數進行升序排序並輸出(包括程式路徑名字)
如輸入:E:\Second\Debug\2.exe welcome to our new world
則輸出:E:\Second\Debug\2.exe new
our
to
welcome
world
不說廢話上程式碼:
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv){
char *temp;
int i, j, flag;
for(i = 1; i < argc; i++){
flag = 0;//氣泡排序標誌
for(j = argc-1; j > i-1; j--){
if(strcmp(argv[j], argv[j-1]) < 0){//用內建strcmp進行比較
temp = argv[ j];
argv[j] = argv[j-1];
argv[j-1] = temp;
flag = 1;
}
}
if(flag == 0)
break;
}
for(i = 0; i < argc; i++){
printf("%s\n", argv[i]);
}
return 0;
}
編譯之後生成2.exe檔案,我的路徑是E:\2.exe,如圖所示在cmd中輸入:
輸出如下圖所示:
按照要求排序成功!