在for循环中使用strtok

loi*_*976 6 c

要遍历我使用的字符串str:

for (tok = strtok(str, ";"); tok && *tok; tok = strtok(NULL, ";"))  
{  
   //do stuff  
}
Run Code Online (Sandbox Code Playgroud)

我想了解这个循环是如何工作的.在我看来:

(1) tok = strtok(str, ";"); //initialization of tok with the first token in str    
(2) tok = strtok(NULL, ";"); // go to the next token in str? how does this work? 
(3) tok && *tok;  //this stops the loop when tok =NULL or *tok=NULL 
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助!

Dev*_*er0 -1

如果你读过它manpagesstrtok说明

strtok() 函数将字符串解析为标记序列。第一次调用 strtok() 时,应在 str 中指定要解析的字符串。在应解析相同字符串的每个后续调用中,str 应为 NULL。