Wyszukiwanie textu

0

W jaki sposob moge znalezsc text w lancuchu znakow... np. potrzebuje znalezsc to co jest pomiedzy ">>" a "<<" -

  >>szukany text<< 

czyli w tym przypadku 'szukany text'... jest jakas funkcja string do czegos takiego?? Pisze w Visual c++...</cpp>

0

ja tam bym to zrobil tak:
(nie sprawdzane, moze byc literoowka)

char *oddaj_tekst( const char* text, const char* poczatek, const char* koniec )
{
  char *p, *k, *nowy; int wielkosc;

  p = strstr( text, poczatek ); // znajdz poczatkowy string
  if( !p ) return NULL;
  p += strlen( poczatek ); // przesun sie o wielkosc szukanego stringa
  k = strstr( p, koniec ); // szukajac od tego momentu znajdz koniec
  if( !k ) return NULL;
  
  wielkosc = (int)( k - p ); // ile liter ma string pomiedzy
  nowy = (char*) malloc( wielkosc + 1 );
  if( !nowy ) return NULL;
  nowy[ wielkosc ] = '\0';
  memcpy( nowy, p, wielkosc); // wrzuc string go nowego bufora

  return nowy;
}

i tyle
zasada dzialania jest prosciutka
mamy jakis string

"costamAAala ma kotaBBnictam"

i chcemy dorwac string miedzy AA i BB
program dziala tak:
najpierw szuka AA

"costamAAala ma kotaBBnictam"
       |
       p

potem przesuwa sie o ilosc liter w poczatku (len(AA) == 2)

"costamAAala ma kotaBBnictam"
         |
         p

nastepnie szuka stringu konca

"costamAAala ma kotaBBnictam"
         |          |
         p          k

wyznacza wielkosc (k-p == wielkosc)
i alokuje pamiec na nowy buforek po czym wrzuca ten string do niej

0

Dzieki wielkie!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1