如何找出什么是标记的最后一个原因

问题描述:

我使用下面的代码来标记C中的字符串,并使用“,”来创建标记,但是我想知道什么时候它会在出现“当“,”出现在字符串中时。如何找出什么是标记的最后一个原因

char *pch; 
pch = strtok(buffer, ", "); 
while (pch!=NULL) { 
    printf("%s\n", pch); 
    pch = strtok(NULL, " ,"); 
} 

据我所知,strtok不支持该功能。但是,您可以执行额外的检查:每当返回pch时,查看剩余缓冲区的第一个字符是否具有“”或“,”。然后,您需要追踪剩余的缓冲区,但这是您的作业:)

strtok和CLIB不公开此信息。所以没有便携的方法来获取它。

你可能会得到你正在寻找的信息,其中包含一个适用于你的clib实现的黑客攻击,但是如果你想要一些稳定和可移植的东西,唯一的选择是实现一个strtok-workalike,告诉你分隔符。

该任务不是火箭科学btw ...