strtok函数c解释
这是strtok函数的一个示例。。。我需要对此块进行解释: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";
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
呼叫都使用该保存状态。您的问题将在手册页中得到回答。如果有人复制了整个手册页,并将其粘贴为答案,会对您有所帮助吗?要想成为一名成功的程序员,你必须愿意调查事情。如果在阅读了一些东西之后,你仍然有问题,那么一定要问他们。这里的情况似乎并非如此。