分类: C/C++
2008-07-14 17:48:10
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int makeargv(const char*s, const char*delimiters,char ***argvp);
int main(int argc ,char *argv[])
{
char delim[]="\t";
int i,j;
char **myargv;
int numtokens;
char *t="abc 123 @#";
if((numtokens=makeargv(t,delim,&myargv))==-1)
{
printf("error for s%\n",argv[1]);
return 1;
}
for(i=0;i
return 0;
}
int makeargv(const char*s, const char*delimiters,char ***argvp)
{
int i;
int numtokens;
const char * snew;
char *t;
if(s==NULL||delimiters==NULL||argvp==NULL)
{
return -1;
}
*argvp=NULL;
snew=s+strspn(s,delimiters);
if((t=malloc(strlen(snew)+1))==NULL)
return -1;
strcpy(t,snew);
numtokens=0;
if(strtok(t,delimiters)!=NULL)
for(numtokens=1;strtok(NULL,delimiters)!=NULL;numtokens++)
if((* argvp=malloc((numtokens+1)*sizeof(char*)))==NULL)
{
free(t);
return -1;
}
if(numtokens==0) free(t);
else
{
strcpy(t,snew);
**argvp=strtok(t,delimiters);
for(i=1;i
}
*((*argvp)+numtokens)=NULL;
return numtokens;
}
昨晚修改程序,发现我用strtok()方法不对,strtok分割字符串
应该把 char delim[]="\t";改成 char delim[]=" ";
char *t="abc 123 @#";改成 char t[]="abc 123 @#";
然后运行一切正常,小组任务快完成了
该总结本星期学习:
1》 java续着上星期看,也明白是怎样实现平台无关性,是虚拟机提供可操作接口实现的。
2》java图形实现功能强大,希望自己在学校实习前看完,再当然还要实现下,书是看的,但实现才更能明白它的价值
3》这个星期成功是早起啦,没有贪睡迟到,呵呵
4》操作系统正在学着,希望能明白计算机工作原理
写的粗略,继续加油
学习的过程是平淡的,又是充满激情的。