首先,我们看看man 手册中如何说?
说白了,就是截取指定分割符的字符串,怎么用呢?
我们来看一个我们自己写的一个实现strtok函数的功能的模型:
int strtok(char * buf,int len)
{
int i = 0;
char *p;
char *arg[10];
fgets(buf,len,stdin);
buf[strlen(buf) - 1] = ' ';
p = buf;
for(; *p != ' ';){
while(*p == ' '){
p ++;
}
arg[ i ++] = p;
while(*p != ' ' && *p != ' '){
p ++;
}
if(*p != ' '){
*p++ = ' ';
}
}
arg[i] = NULL;
for(i = 0;arg[i] != NULL;i ++){
printf("%s
",arg[i]);
}
return 0;
}
似乎有点小麻烦,其实这些事情strtok函数已经帮你做了,不信请看更简单的用法:
int main(int argc, const char *argv[])
{
int i = 0;
char *p;
char *arg[10];
char buf[1024];
fgets(buf,sizeof(buf),stdin);
buf[strlen(buf) - 1] = ' ';
arg[i] = strtok(buf," ");
while(arg[++i] = strtok(NULL," "))
;
for(i = 0; arg[i] != NULL;i ++){
printf("%s
",arg[i]);
}
return 0;
}
测试结果如下:
输入:hello world
输出:hello
world
是不是很简单呢!