codice:
#include <iostream>
#include <fstream>
using namespace std;
fstream file_da_leggere;
char nome_del_file[32];
char testo_da_esaminare[10000];
char sequenza_da_cercare[80];
bool trovata;
bool sotto_sequenze(char v[], int m, char s[], int n)
{
for (int i=0; i <= (m-n); i++)
{
int j=0;
while (s[j]==v[i] && j<n)
{
j++;
i++;
}
if (j==n)
{
cout << "Stringa trovata in posizione " << i-n <<'\n';
trovata=true;}
}
return trovata;
}
int main()
{
char r;
do
{
int sequenza=0, caratteri=0;
trovata=false;
cout << "Quale file vuoi analizzare? \n";
cin >> nome_del_file;
cin.get(r);
file_da_leggere.open(nome_del_file, ios::in);
while(file_da_leggere.get(testo_da_esaminare[caratteri])&&caratteri<10000)
caratteri++;
cout << "Quale sequenza di caratteri vuoi cercare? \n";
while(cin.get(sequenza_da_cercare[sequenza])&&sequenza_da_cercare[sequenza]!='\n'&& sequenza<80)
sequenza++;
if(!sotto_sequenze(testo_da_esaminare,caratteri,sequenza_da_cercare,sequenza))
cout << "sequenza non trovata. \n";
file_da_leggere.clear();
file_da_leggere.close();
cout << "Vuoi continuare? (y/n)";
cin.get(r);
}
while(r=='y');
return 0;
}