问题描述
我仍然有一些问题,我想如果我设法解决这个问题,我最终会掌握它的。
我有这个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
会损坏字符串。