strtok函数c解释

strtok函数c解释,c,strtok,C,Strtok,这是strtok函数的一个示例。。。我需要对此块进行解释: while (pch != NULL) { printf ("%s\n",pch); pch = strtok (NULL, " "); } return 0; 尤其是pch=strtok(NULL,”) #include <stdio.h> #include <string.h> int main () { char str[] ="This a sample string";

这是strtok函数的一个示例。。。我需要对此块进行解释:

while (pch != NULL)
{
    printf ("%s\n",pch);
    pch = strtok (NULL, " ");
}
return 0;
尤其是
pch=strtok(NULL,”)

#include <stdio.h>
#include <string.h>

int main ()
{
    char str[] ="This a sample string";
    char * pch;
    printf ("Splitting string \"%s\" into tokens:\n",str);
    pch = strtok (str," ");
    while (pch != NULL)
    {
        printf ("%s\n",pch);
        pch = strtok (NULL, " ");
    }
    return 0;
}
#包括
#包括
int main()
{
char str[]=“这是一个示例字符串”;
char*pch;
printf(“将字符串\%s\”拆分为标记:\n”,str);
pch=strtok(str,“”);
while(pch!=NULL)
{
printf(“%s\n”,pch);
pch=strtok(空,“”);
}
返回0;
}
strtok()是标准C库中的一个函数。有一些标准C库的开源实现。例如:下面的链接是Microsoft的一个版本

您可以在代码中清楚地看到:

/* Skip leading delimiters if new string. */
if ( s1 == NULL ) {
   s1 = lastToken;
   if (s1 == NULL)         /* End of story? */
   return NULL;
} else
.....
变量“lastToken”用于跟踪strtok()的状态


这就是为什么对于第二个令牌,您应该将NULL传递给strtok()。

是否查找了?下面是一个示例。阅读后您是否有任何具体问题?我知道此函数从字符串中获取标记,但在这一行[strtok(NULL,”;]我不知道将获取其标记的字符串在哪里!!你真的按照建议读了手册页了吗?它告诉您info:“如果str!=NULL,调用将被视为此特定字符串对strtok的第一次调用……如果str==NULL,调用将被视为对strtok的后续调用:”,也就是说,
strtok
在内部保留您第一次调用时给出的原始字符串的状态。随后的每个
NULL
呼叫都使用该保存状态。您的问题将在手册页中得到回答。如果有人复制了整个手册页,并将其粘贴为答案,会对您有所帮助吗?要想成为一名成功的程序员,你必须愿意调查事情。如果在阅读了一些东西之后,你仍然有问题,那么一定要问他们。这里的情况似乎并非如此。