如何找出什么是标记的最后一个原因
问题描述:
我使用下面的代码来标记C中的字符串,并使用“,”来创建标记,但是我想知道什么时候它会在出现“当“,”出现在字符串中时。如何找出什么是标记的最后一个原因
char *pch;
pch = strtok(buffer, ", ");
while (pch!=NULL) {
printf("%s\n", pch);
pch = strtok(NULL, " ,");
}
答
据我所知,strtok不支持该功能。但是,您可以执行额外的检查:每当返回pch
时,查看剩余缓冲区的第一个字符是否具有“”或“,”。然后,您需要追踪剩余的缓冲区,但这是您的作业:)
答
strtok和CLIB不公开此信息。所以没有便携的方法来获取它。
你可能会得到你正在寻找的信息,其中包含一个适用于你的clib实现的黑客攻击,但是如果你想要一些稳定和可移植的东西,唯一的选择是实现一个strtok-workalike,告诉你分隔符。
该任务不是火箭科学btw ...