gpt4 book ai didi

html - C替换字符串中的html标签

转载 作者:行者123 更新时间:2023-11-30 18:37:48 25 4
gpt4 key购买 nike

大家好,我目前有一个程序可以搜索包含大量文本(其中包含超链接)的 html 文件。目前,我只能打印整行文本,其中包括我试图避免的原始 html 标签。有没有办法做到这一点?

这是我想要实现的目标的示例:

html 文件中的示例文本行:

<a href="/cgi-bin/as-report?as=AS41299&view=2.0">S/N1</a> Blahblahblah

我想要实现的目标:

S/N1 Blahblahblah

到目前为止我的代码:

            while (!feof(fp)) {
memset(buffer, 0, buflen+1);
fgets(buffer, buflen, fp);

if (strstr(buffer, asnumber)) {
printf("\"%s\"\n", buffer);
}
}

如有任何建议,我们将不胜感激,谢谢。

最佳答案

您可以建立一个上下文来告诉您是否在标签内,然后根据该上下文过滤您的字符串:

    #include <stdlib.h>
#include <stdio.h>

void filter(char *str)
{
char *p = str;
int tag = 0;

while (*str) {
if (*str == '<') tag = 1;
if (!tag) *p++ = *str;
if (*str == '>') tag = 0;
str++;
}

*p = '\0';
}

int main()
{
char line[] = "Read <a href=\"x.html\">more <b>here</b></a>.";
puts(line);
filter(line);
puts(line);

return 0;
}

这适用于格式正确的 HTML 字符串,这些字符串可以正确转义所有不是标记分隔符的尖括号。如果该行以前一行的尾部开放标记开头,则将打印该标记的其余部分。

关于html - C替换字符串中的html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com