0

タグ区切り文字で html ページを分割したい: like<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以外に使用できる方法はありますか?

4

3 に答える 3

0

の 2 番目の引数strtokは区切り文字のリストです。これらはそれぞれ、文字列をトークンに分割するために使用されます。私はそれがあなたが思っていることをするとは思わない...

HTMLファイルをトークンに解析したい場合は、lex...を調べることができます

あなたの望む出力は何ですか?入力用のテストケースはありますか?

コードは次のようになります。

入力:

<html><img src="test.png"/></html>

出力:

  • ""
  • "ht"
  • "私>"
  • " src=\"test.pn"
  • "\"/>"
  • "/ht"
  • "私>"

どういうわけかそれはあなたが望んでいるものではないと思います...

于 2013-07-30T09:21:55.943 に答える