【发布时间】:2013-07-30 09:16:51
【问题描述】:
我想通过标记分隔符将 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还有其他方法可以使用吗?
【问题讨论】:
-
strtok()的第二个参数实际上是您感兴趣的所有分隔符的列表。我建议拆分“img 开头跨度> -
除非你真的需要自己实现,否则我建议你查看 libxml:xmlsoft.org。否则,您将不得不使用 strtok 解析“”。