c - 使用 strtok 和填充数组

标签 c strtok

我正在根据标准输入的输入填充一组标记。我正在查看一个教程,代码成功地填充了一个数组,但是,我无法使用 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")));

我能否得到一些关于如何打破最后一行中的 while 循环的指示,以便我可以使用 if else。

最佳答案

这样更干净

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

现在 NULL 指针没有放在数组中。

但是,您没有记录数组中有多少个指针,那么您为什么不想要标记值 NULL

关于c - 使用 strtok 和填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50474055/

相关文章:

c - strtok 只给我第一片

c - 无法从 c 中的给定格式拆分输入字符串?

c - 罢工行为

c - C 中的 isalpha 函数仅使用 & 和 <= 运算符

创建列表

c - 省略前向声明(原型(prototype))

c - 程序崩溃时如何捕获错误?

iphone - 从 ARM 动态库(框架)获取参数列表?

c - 为什么 strtok() 使我的程序返回负值?

c - 使用 strtok() 将数值存储在二维数组中