ho trovato questo prog in un sito..ho capito cosa dovrebbe fare ma ci sono molti passaggi ke nn riesco a capire e x lo +nemmeno funziona..sapete darmi uan mano?
grazie!!
#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); // serve per “scaricare” il \n appena battuto dall'utente
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";
cin>>sequenza_da_cercare;
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;
}