原创文章,转载请正确注明本文原始URL及作者;请尊重原创。
自己实现的一个解析命令行参数的代码,思路是:
遍历参数表,用strcmp()取得不带参数的选项;
用strncmp()取得带有参数的选项,然后通过字符串截取得到参数值。
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 int main(int argc, char const *argv[]) 6 { 7 for(int i=1;i<argc;i++) 8 { 9 if(strcmp(argv[i],"--debug")==0) 10 { 11 puts("is debug mode"); 12 } 13 else if(strncmp(argv[i],"--name=",strlen("--name="))==0) 14 { 15 printf("name: %s\n",argv[i]+strlen("--name=")); 16 } 17 else if(strncmp(argv[i],"--age=",strlen("--age="))==0) 18 { 19 printf("age: %d\n",atoi(argv[i]+strlen("--age="))); 20 } 21 else 22 { 23 printf("invalid option: %s\n",argv[i]); 24 } 25 } 26 return 0; 27 }
运行一下,看看效果:
zhaojk@localhost:$ ./a.out --name=zhaojiankang --age=18 --debug --hehe name: zhaojiankang age: 18 is debug mode invalid option: --hehe
原创文章,转载请正确注明本文原始URL及作者;请尊重原创。