我想通過標籤分隔符將HTML頁面拆分爲小塊:如<img
或<div>
。 我嘗試下面的代碼,但它不工作:按標籤分割html
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:http://www.xmlsoft。org /。否則,你將不得不使用strtok解析「<」,然後測試你的標籤,然後解析「>」。 –