在解析像HTML / XML中的标签时,我想初始化strtok for'<'但有时我只需处理原始文本

时间:2014-08-03 20:50:56

标签: c strtok

我的问题是

char *text, *tag = "foobar";
if (tokenizedStr[0] == "<")
    tag = strtok((tokenizedStr), ">");

有时,标记化字符串应该被允许不以标记开头。鉴于下一行

do {

是以while (tag = strtok(NULL, ">"));结尾的大规模比较循环的开始我想知道是否有任何方法可以提供strtok基本字符串,而不会超过任何字符?我实现了基本的格式化和换行。

由于

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题:不,strtok这是不可能的。您需要功能更强大的工具:lexyacc,以及正确定义的正式语法,无论您尝试解析什么。这不仅会取代您使用strtok,而且会取代大部分&#34;大规模比较循环&#34;你没有表现出来。