/***************************************************************** * Corso di Elementi di Informatica - a.a. 2001/2002 * * M. Esposito - A. Pescapč - G. Ventre * * * * Traccia: * * Scrivere un programma che permetta all'utente di inserire * * un'intera frase. Il programma successivamente visualizzi il * * numero di parole che compone la frase. * * In questa implementazione si ipotizza che una frase sia co- * * stituita di parole, dove una parola č una sequenza di carat- * * teri diversi dallo spazio delimitata da uno o pių spazi a * * destra o a sinistra. Uno o pių spazi possono anche aprire * * e chiudere la frase. * * * * Autori: Antonio Pescape' e Marcello Esposito * *****************************************************************/ #include #include const int NMaxChars = 255; typedef char TFrase[NMaxChars]; int ContaParole(const TFrase frase); int main() { TFrase f; cout << "Inserisci una frase: "; cin.getline(f, NMaxChars); //oppure: gets(f); cout << "\nLa frase\n\n" << f << "\n\ncontiene " << strlen(f) << " caratteri e " << ContaParole(f) << " parole.\n"; system("PAUSE"); return 0; } int ContaParole(const TFrase frase) { int n = 0; int len; int indice = 0; len = strlen(frase); while (indice < len) { //porta indice al successivo carattere diverso da spazio o alla fine while ( (indice < len) && (frase[indice] == ' ') ) indice++; //se indice non supera len allora inizia una nuova parola: n++ if (indice < len) n++; //porta indice al successivo spazio o alla fine while ( (indice < len) && (frase[indice] != ' ') ) indice++; } return n; }