我正在使用以下代码来标记C中的字符串并使用“,”来制作令牌,但我想知道它何时在“”出现时以及“,”出现在字符串中时是否生成字符串的标记。
char *pch;
pch = strtok(buffer, ", ");
while (pch!=NULL) {
printf("%s\n", pch);
pch = strtok(NULL, " ,");
}
答案 0 :(得分:2)
据我所知,strtok不支持该功能。但是,您可以执行其他检查:每次返回pch
时,查看剩余缓冲区的第一个字符是否为“”或“,”。然后,你需要追踪剩余的缓冲区,但这是你的功课:)
答案 1 :(得分:0)
strtok和CLIB不会公开此信息。所以没有便携的方式来获得它。
您可以通过适用于clib实现的hack获取您正在寻找的信息,但如果您想要一些稳定且可移植的东西,您唯一的选择就是实现一个告诉您分隔符的strtok-workalike。
那项任务不是火箭科学......