C parsanje HTML-a

poruka: 2
|
čitano: 1.134
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
C parsanje HTML-a

Pa, ovo sam iskodiro, to bi trebalo parast ovaj string, sad on radi za prva 2 taga, ali svi ostali su isti. Ovo je output, a nebi trebao biti

 

tag1

tag2

tag2

tag2

 

 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

int foo(char *dest, int size, const char *field, const char *delim)

{

  const char *end, *start = strstr(field, delim);

  if ( start != NULL )

  {

    start += strlen(delim);

    end = strchr(start, *delim);

    if ( end != NULL )

    {

     int length = end - start;

     if ( length >= --size )

     {

       length = size;

     }

     sprintf(dest, "%*.*s", length, length, start);

     return 1;

    }

  }

  // return 0;

}

 

int main(void){

int i=0;

char buffer[32];

char mybuf[100];

char mystr[]="<b>tag1</b><b>tag2</b><b>100 M</b><b>radi</b>";

 

strcpy(mybuf,mystr);

for (i; i<4; i++){

foo(buffer, sizeof buffer, mybuf, "<b>");

puts(buffer);

memmove(mybuf,mybuf+3,strlen(mybuf+3)+1);

  }

return 0;

}

 

 

P.S. kod nije formatiran kao kod, nesto se krsilo

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
C parsanje HTML-a

Probaj ispisati mybuf nakon svakog prolaza, samo uklanjas prva tri znaka u stringu umjesto da uklonis <b>

sto pretpostavljam da zelis napraviti tako da ce ti nalaziti tag2 sve dok ne ukloni <b> koji je ispred njega sto

ne stigne u 4 prolaza.

Ako vec zelis ici tim putem mozda bi ti bilo jednostavnije da samo nades kada se javlja <b> sa strstr pa onda

prepises ta tri znaka sa nekim drugim znakovima npr. pomocu strncpy.

All problems in computer science can be solved by another level of indirection
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice