c - 定位给定文件中的所有子字符串实例

标签 c string substring

我目前正在研究一个函数来查找 html 文件中引用的所有图像,目前我正试图在文件中找到这些子字符串:".bmp" "。 gif" ".jpg" ".png" 并且还想找到它们的根例如:/images/foo/ 和然后使用这两个子字符串创建一个新字符串:/images/foo/bar.jpg 我知道我将如何连接这些字符串,但我不知道我将如何定位实际的子字符串,我现在感到不知所措,非常感谢您的帮助。

最佳答案

这个问题的“正确”答案应该是促使您使用专为该工作打造的工具。聪明人会写类似 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) 的开头或引号 " 来找到。正如道格在评论中提到的那样。

您会注意到我在引号中标明了正确和错误。我有点纯粹主义者,强烈建议使用面向 XML 的解决方案,因为它完全可以通用且易于扩展(明天您可能会说:哦,我还需要 anchor 文本)。 DOM 解析器使每个后续问题都变得轻而易举。

但是,如果您正在进行概念验证或原型(prototype)(甚至可能是家庭作业),其中所有内容都格式正确并且您没有在野外发布您的代码,那么“错误”的方法可能就足够了。

关于c - 定位给定文件中的所有子字符串实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059362/

相关文章:

javascript - Node.js 获取字符串中所有出现的子字符串

c - strncmp 函数不会停止检查 n 个字符?

ios - xCode 在应用内 map 服务上显示应用用户

c - 是否需要将文件指针传递给main?

c 应用程序服务器套接字连接挂起

c# - 为什么 String.CompareTo 不考虑字符串长度?

c - 如何去除 "bash"中对 "C"有特殊意义的字符串中的标点符号

javascript - 了解 Javascript/V8 中的字符串堆大小

java - for循环中的substring()导致 "StringIndexOutOfBoundsException: String index out of range: -1"

sql - 如何从PostgreSQL中的字符串中找到最后一个单词的起始位置