zoukankan      html  css  js  c++  java
  • 解析命令行参数



    #include <stdio.h>
    #include<string.h>
    
    
    #define CFG_MAXARGS 10
    //parse_line函数参考uboot源码
    static int parse_line (char *line, char *argv[])
    {
    	int nargs = 0;
    
    	while (nargs < CFG_MAXARGS) {
    
    		/* skip any white space */
    		while ((*line == ' ') || (*line == '	')) {
    			++line;
    		}
    
    		if (*line == '') {	/* end of line, no more args	*/
    			argv[nargs] = NULL;
    			return (nargs);
    		}
    
    		argv[nargs++] = line;	/* begin of argument string	*/
    
    		/* find end of string */
    		while (*line && (*line != ' ') && (*line != '	')) {
    			++line;
    		}
    
    		if (*line == '') {	/* end of line, no more args	*/
    			argv[nargs] = NULL;
    			return (nargs);
    		}
    
    		*line++ = '';		/* terminate current arg	 */
    	}
    
    	return (nargs);
    }
    //解析命令行参数
    int main()
    {
    	int argc,i;
      char buf[1024]="set_network 2 ssid "wifiUncleWang"";
      char *argv[CFG_MAXARGS];
    
    //  strncpy(buf, cmd, 1024);
    //  buf[1023] = '';
      
      argc = parse_line(buf, argv);
      
      for (i=0; i < argc; i++)  
     	 	printf("
     %s 
    ",argv[i]);
       
       return 0;
    }


    运行结果:



     set_network 


     2 


     ssid 


     "wifiUncleWang" 






  • 相关阅读:
    微信运营
    1.数据库&SQL语言
    16.线程
    15.IO流
    14.异常
    13.集合
    12.常用类
    11.String类-StringBuffer类、StringBuilder类
    10.Object类-包装类-内部类
    9.接口
  • 原文地址:https://www.cnblogs.com/alan666/p/8311849.html
Copyright © 2011-2022 走看看