您的位置:首页 > 大数据 > 人工智能

main函数的实现解析

2016-05-26 23:40 477 查看
main函数的传参的实现,其实也是一个解析字符串的过程:将每个word后一个空格改为“/0”,将单词提取出来。

就是这么简单。

废话不多说,直接上代码:

#include<stdio.h>
#include<string.h>
void shell_parse(char *sbuf)
{
char mbuf[50];
sprintf(mbuf,"%s",sbuf);
char *buf=mbuf;//两次转换,得到一个能++的指针

//strcpy(a,buf);
int i;
int argc=0;
char *argv[8];
int state = 0;
while(*buf)
{
char c = *buf;
printf("%c\n",c);
if(c == ' ' &&state==0)
state = 0;
if(c!= ' '&& state ==0)
{
argv[argc++] =buf;
state = 1;
printf("1:::argv[%d]:%s\n",argc,argv[0]);
}
if(c == ' '&&state == 1)
{
*buf = '\0';
state = 0;
}
/*    if(c !=' '&& state == 0)
{
argv[argc++] = buf;
printf("2::argv[%d]:%s\n",argc,argv[argc]);
state = 1;

}*/
buf++;
if(*buf == '\n')
*buf = '\0';

}
argv[argc] = NULL;

printf("argc = %d\n",argc);
for(i = 0;i<=argc;i++)
{
printf("argv[%d]:%s\n",i,argv[i]);
}
//        free((void*)buf);
}
int main(int argc,char **argv)
{
int i = 0;
char buf[64];
//fgets(buf,64,stdin);
//printf("buf = %s\n",buf);
sprintf(buf,"%s","hsfsfs fsf fsaf;fsa fsfd");
printf("hell");
shell_parse("fsjf  sflsdjf dsfsfsdf fs");//此处实现完全传出来的是参数。

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: