使用strtok和填充数组

时间:2018-05-22 18:14:18

标签: c strtok

我从stdin的输入填充了一系列标记。我正在查看一个教程,并且代码成功填充了一个数组,但是,我无法使用if else条件来消除我不想放入数组的令牌。

char * token[MAX_ARGS];                    
char ** arg;                              
while(fgets(line, MAX_BUFFER, stdin)) {

    arg = token;
    *arg++ = strtok(line," \t\n"); 
    while ((*arg++ = strtok(NULL, " \t\n")));

我可以得到一些指针,告诉我如何在最后一行中打破循环,这样我就可以使用if else。

1 个答案:

答案 0 :(得分:0)

这样做比较干净

char *tok = strtok(line, " \t\n");
while(tok) {
    *arg++ = tok;
    tok = strtok(NULL, " \t\n");
}

现在NULL指针不在数组中。

但是,你不能记录数组中指针的数量,所以为什么不想要哨兵价值NULL