Inoltre, dovete inserire il vostro numero di matricola come utente e la password che vi è stata spedita via posta elettronica.
Fa fede l'ultima password che vi è stata spedita.
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
#include <limits.h>
int main(int argc, char **argv){
char i;
bool initword=false, presenzachar=false;
int nword=0; // numero di parole che contengono il carattere
int lw=0; // lunghezza parola
int minl=INT_MAX, maxl=INT_MIN;
// leggo nome file e carattere da utilizzare da riga di comando
// naturalmente altre scelte sono comunque corrette
if(argc<3){
cout << "Utilizzo: " << argv[0] << " <nome file da aprire> <carattere da utilizzare> \n";
exit(-1);
}
ifstream fin(argv[1]); // apro il file richiesto
if(!fin){
cout << "Errore non riesco ad aprire " << argv[1] << "\n";
exit(-1);
}
char c=argv[2][0]; //carattere da utilizzare
while(fin.get(i)){ //XXX sto leggendo un carattere per volta!
if(isalpha(i)){ // se e' vera e' un carattere
initword=true; // ho trovato una parola
if(i==c)
presenzachar=true; // la parola contiene il carattere in esame
++lw; // aggiorno lunghezza parola
}else{
if(initword){ // se initword e' vera avevo trovato una parola
if(presenzachar){ // controllo la presenza del carattere che sto cercando
++nword; // aggiorno il numero di parole trovate
// aggiorno lunghezza massima e minima
if(lw<minl)
minl=lw;
if(lw>maxl)
maxl=lw;
}
// reset campi
initword=false;
presenzachar=false;
lw=0;
}
}
}
// devo comunque controllare un'eventuale ultima parola
if(initword&&presenzachar){
++nword;
if(lw<minl)
minl=lw;
if(lw>maxl)
maxl=lw;
}
// stampo quanto richiesto
if(nword)
cout << "Numero parole contenenti '" << c << "':" << nword << "\n"
<< "Massima lunghezza parola :" << maxl << "\n"
<< "Minima lunghezza parola :" << minl << "\n";
else
cout << "Non ho trovato parole che contengono il carattere in esame\n";
}