有没有办法计算C中的令牌?

Jam*_*mes 10 c token delimiter strtok

我正在使用strtok将字符串拆分为标记.有谁知道实际计算令牌数量的任何功能?

我有一个命令字符串,我需要拆分它并传递参数execve().

谢谢!

编辑

execve将参数作为char**,所以我需要分配一个指针数组.我不知道有多少分配而不知道有多少令牌.

nne*_*neo 8

一种方法是简单地使用strtok计数器.但是,这将修改原始字符串.

另一种方法是strchr在循环中使用,如下所示:

int count = 0;
char *ptr = s;
while((ptr = strchr(ptr, ' ')) != NULL) {
    count++;
    ptr++;
}
Run Code Online (Sandbox Code Playgroud)

如果您有多个分隔符,请使用strpbrk:

while((ptr = strpbrk(ptr, " \t")) != NULL) ...
Run Code Online (Sandbox Code Playgroud)