如何将标记(Strtok)存储在数组的指针中

人气:409 发布:2022-10-16 标签: arrays c pointers token

问题描述

我仍然有一些问题,我想如果我设法解决这个问题,我最终会掌握它的。

我有这个line,Istrtok用分隔符隔开。现在,我希望将所有标记存储在数组char* tokens[50]上的指针中。如何将所有令牌存储在此指针中,以及如何在存储所有令牌后访问它们。我想我还需要一个柜台int token_count

推荐答案

这很简单。例如:

char * tokens[50];
size_t n = 0;

for (char * p = strtok(line, " "); p; p = strtok(NULL, " "))
{
    if (n >= 50)
    {
        // maximum number of storable tokens exceeded
        break;
    }
    tokens[n++] = p;
}

for (size_t i = 0; i != n; ++i)
{
     printf("Token %zu is '%s'.
", i, tokens[i]);
}

请注意,line必须指向可变的字符串,因为strtok会损坏字符串。

437