gpt4 book ai didi

c - 按标签拆分 html

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:25 26 4
gpt4 key购买 nike

我想通过标记定界符将 html 页面拆分成多个部分:如 <img<div> .我尝试了以下代码,但它不起作用:

char source[MAXBUFLEN + 1];
FILE *fp = fopen("source.html", "r");
if (fp != NULL)
{
size_t newLen = fread(source, sizeof(char), MAXBUFLEN, fp);
if (newLen == 0) {
fputs("Error reading file", stderr);
} else {
source[++newLen] = '\0'; /* Just to be safe. */
}
}
fclose(fp);

//not working
char* strArray[10];
int i = 0;
char *token = strtok(source, "<img");
while(token != NULL)
{
strcpy(strArray[i++], token);

token = strtok(NULL, "<img");
}

printf("%s\n", strArray[3]);

我做错了什么?除了 strtok,还有其他方法可以使用吗?

最佳答案

正如 Daren 已经发布的那样,strtok() 不会执行您想要的操作。你可以使用

char *ptr = strstr( source, "<img" );

而是找到第一个标签,然后

ptr = strstr(ptr+4, "<img" ); // search starts direcly behind the previous "<img" 
// maybe you can find a better offset

下一次出现。

另外,你的台词

strcpy(strArray[i++], token);

会崩溃,因为您没有为指针分配内存。

关于c - 按标签拆分 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17942958/

26 4 0