我不太明白工作的结果strtok:
我从strtok拿了完整的例子
并简单地将字符串和子字符串替换为您自己的:
int main()
{
char str[] = "hih1ihi";
char* pch;
printf("Splitting string \"%s\" into tokens:\n", str);
pch = strtok(str, "hi");
while (pch != NULL)
{
printf("%s\n", pch);
pch = strtok(NULL, "hi");
}
}
从字符串“ hi h1i hi ”和子字符串“hi”和应用strtok- 我希望看到以下结果:
h1i
由于定界符 hi - 理论上应该被丢弃,但strtok只输出:
一
请告诉我我哪里错了?
strtok不能那样工作。它将分隔符字符串作为其第二个参数,而不是分隔符字符串。那些。该字符串中的每个字符都是一个分隔符,这是您观察到的。在您的情况下,分隔符是字符handi,而不是整个 stringhi。因为 在该行中,hih1ihi除了分隔符之外,只有一个符号1,然后程序显示它。