c++ Przeszukiwanie tekstu

lukasz18101988
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 13 kwie 2008, o 22:37
Płeć: Mężczyzna
Lokalizacja: małogoszcz

c++ Przeszukiwanie tekstu

Post autor: lukasz18101988 »

Proszę o pomoc w następującym zadaniu.

Mam program który przeszukuje jakiś tekst i szuka w nim jakiegoś wyrazu.

Chciałbym przerobić go tak, by przeszukiwał jakiś tekst który jest w pliku " plik.txt "
a szukana fraza była wprowadzana z klawiatury, a rezultatem było wyświetlenie liczby , która informuje nas, którym z kolei znakiem jest pierwszy znak szukanego wyrazu.
Np. ( mamy do przeszukania tekst w pliku "plik.txt" o treści: " abrakadabra", i szukamy tekstu " rak", to wyświeli liczbę 2 )

Proszę o pomoc


Kod: Zaznacz cały

#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<string.h>

const M = 4 ;                              /*stała liczba szukanego ciągu znaków */

int shift[M];

int init_shifts(char *w)
{
   int i,j;
   shift[0]=-1;
   for(i=0,j=-1; i<M-i; i++,j++,shift[i]=j)
                
           while((j>=0) && (w[i]!=j))   j=shift[j];
}

int kmp(char *w, char *t)
{
   int i,j, N=strlen(t);
   for(i=0,j=0; i<N && j<M; i++, j++)
   while((j>=0) && (t[i]!=w[j]))
   j=shift[j];

  if(j==M) return i-M; else return -1;
}


void main()
{
char *w=1010";
init_shifts(w);
char *t= "abcd1010def";
cout << "Wynik poszukiwan = " <<kmp(w,t)<<endl;
}

  
Awatar użytkownika
Calasilyar
Użytkownik
Użytkownik
Posty: 2656
Rejestracja: 2 maja 2006, o 21:42
Płeć: Mężczyzna
Lokalizacja: Wrocław/Sieradz
Podziękował: 29 razy
Pomógł: 410 razy

c++ Przeszukiwanie tekstu

Post autor: Calasilyar »

polecam użycie szablonu string do wczytywania linii, tam jest wiele gotowych narzędzi do czynności, o których wspominasz;
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

c++ Przeszukiwanie tekstu

Post autor: matshadow »

Pokombinuj z funkcją find
ODPOWIEDZ