解析命令列引數

2021-05-27 14:32:38 字數 1230 閱讀 7257

#include

#include

#include

#include

int make_argv(const char *astr, const char *delimiters, char ***argvp);

void free_argv(char **argvp);

int main(int argc, char *argv)

if ((numtokens = make_argv(argv[1], delim, &myargv)) == -1)

printf("the argument array contains:\n");

for(i = 0; i < numtokens; ++i)

printf("%d:%s\n", i, myargv[i]);

free_argv(myargv);

return 0;

}//name: make_argv

//description: 利用分割標示符(delimiters)解析命令列引數字串(astr),並將引數存入引數陣列*argvp

int make_argv(const char *astr, const char *delimiters, char ***argvp)

*argvp = null;

snew = astr + strspn(astr, delimiters);    //去除前面的分割標示符

if ((oldt = t = malloc(strlen(snew) + 1)) == null)    //申請空間並儲存位址oldt

return -1;

strcpy(t, snew);    //初始化待處理命令列

//求引數個數numtokens,strsep是字串分割函式

for(numtokens = 0; strsep(&t, delimiters) != null; ++numtokens)

//根據numtokens為*argvp申請空間(引數陣列)

if ((*argvp = malloc((numtokens + 1) * sizeof(char *))) == null)

if (numtokens == 0)

free(t);

else

}*(*argvp + numtokens) = null;

return numtokens;

void free_argv(char **argvp)

Boost 解析命令列引數

boost中有乙個program options庫,專門用來解析程式命令列引數的。allow long 接受長名稱 allow short 接受短名稱 allow dash for short 允許短選項使用 allow slash for short 允許短選項使用 long allow adja...

python解析命令列引數

使用乙個先進的模組名為argparse,跟unix程式的命令列引數很像。直接對code做個筆記 import sys import argparse def main args print first name directory s args.first name print first para...

python getopt 命令列引數解析

新建乙個argtest.py檔案,輸入以下 import sys print sys.argv 隨後在命令提示符中執行python argtest.py a b c 1 a b 1,2 a b 會輸出 argtest.py a b c 1 a b 1,2 a b 可以看出來引數的提取規則 以上幾條規...