我每个人都有一个数组
21 44 56 777
我正在使用strtok函数在空间的基础上分离它们
int i;
char *token;
token = strtok(payload1, " ");
printf ( "\n\n\nTOKEN %s" , token);
我工作正常,显示21。 现在我想显示44使用相同的变量令牌如何做到
谢谢,请帮助我答案 0 :(得分:3)
您需要重复申请strtok。
token = strtok(payload1, " ");
while ( token != NULL)
{
token = strtok(NULL, " ");
// do your stuffs
}
答案 1 :(得分:0)
试试这个
while(token != NULL){
token = strtok(NULL, " ");
}
答案 2 :(得分:0)
strtok的实现在第一次调用时将指针保存到私有变量中。在后续调用第一个参数为NULL时,它将返回初始字符串的下一个标记。
由于strtok使用一些私有存储来保存指针,因此您无法同时处理两个不同的字符串,并且它不可重入。
如果你想起诉strtok使用reentrant版本,即使你没有运行多个踏板,strtok_r也会更安全。
例如,如果函数A使用strtok来解析字符串,并且在其中间调用另一个也使用strtok来解析另一个字符串的函数,则函数A将得到错误的结果。
另请注意,strtok会修改字符串,而ergo不能用于静态分配。