main函数的传参的实现,其实也是一个解析字符串的过程:将每个word后一个空格改为“/0”,将单词提取出来。
就是这么简单。
废话不多说,直接上代码:
1 #include<stdio.h> 2 #include<string.h> 3 void shell_parse(char *sbuf) 4 { 5 char mbuf[50]; 6 sprintf(mbuf,"%s",sbuf); 7 char *buf=mbuf;//两次转换,得到一个能++的指针 8 9 //strcpy(a,buf); 10 int i; 11 int argc=0; 12 char *argv[8]; 13 int state = 0; 14 while(*buf) 15 { 16 char c = *buf; 17 printf("%c ",c); 18 if(c == ' ' &&state==0) 19 state = 0; 20 if(c!= ' '&& state ==0) 21 { 22 argv[argc++] =buf; 23 state = 1; 24 printf("1:::argv[%d]:%s ",argc,argv[0]); 25 } 26 if(c == ' '&&state == 1) 27 { 28 *buf = '