在给定文件中查找所有子字符串实例

时间:2012-08-21 16:37:53

标签: c string substring

我目前正在开发一个函数来查找html文件中引用的所有图片,目前我正在尝试在文件中找到这些子字符串:".bmp" ".gif" ".jpg" { {1}}并且还希望找到它们的根,例如:".png"然后使用这两个子串创建一个新字符串:/images/foo/我知道我将如何连接字符串但我不知道我如何找到实际的子串,我现在感到非常不知所措,真的很感激一些帮助。

1 个答案:

答案 0 :(得分:5)

这个问题的“正确”答案应该促使你使用为工作而建的工具。出于某种原因,聪明的人会写libxml之类的东西。重新发明轮子只会让事情变得更加困难。例如,使用libxml,您可以轻松遍历XML树:

for (cur_node = a_node; cur_node; cur_node = cur_node->next) {
    if (cur_node->type == XML_ELEMENT_NODE) {
        printf("node type: Element, name: %s\n", cur_node->name);
}

“错误”的答案是通过查找图像标记的开头(<img)或引用{{1}来找出图像字符串开头的“技巧”。正如道格在评论中提到的那样。

你会注意到我在引文中出错。我有点纯粹主义者,强烈建议使用面向XML的解决方案,因为它完全可以推广并且可以轻松扩展(明天你可以说:哦,我也需要锚文本)。 DOM解析器可以轻松解决每个后续问题。

但是如果你正在制作一个概念验证或原型(或者甚至是家庭作业),其中一切都是格式良好的,并且你不会在野外发布你的代码,那么“错误”的方法可能就足够了。