Ciao ragazzi,sto provando a fare un esercizio con il c++ ma non sono molto bravo a programmare.Il mio prgramma legge solo la prima parola della frase inserita e mi da la lunghezza solo di questa, non capisco dove sia l'errore.Qualcuno potrebbe aiutarmi?Grazie
Siano dati in ingresso, da file o da tastiera, una stringa rappresentante una frase composta da parole
Si progetti un programma che conti il numero delle parole contenute nella frase e determini la lunghezza della parola più lunga contenuta nella frase. Si Stampino i valori di ingresso e le risultanze dell’elaborazione .
(Si supponga che la frase inserita sia priva di punteggiatura: pertanto le parole nella frase sono separate solo tramite uno o più caratteri spazio bianco’ ’.)
#include <iostream>
#define MAXLEN 50
using namespace std;
int main()
{
char frase[MAXLEN];
int parole;
int max;
int i;
int temp;
max=0;
parole=0;
cout<<"inserire la frase \n";
cin>>frase;
i=0;
temp=0;
for (i=0;i<=strlen(frase);i++){
if ((frase[i] != ' ' ) & (frase[i] != '\0' ))
temp++;
else{
parole++;
if (temp>max){
max=temp;
temp=0;
}else
temp=0;
}
}
cout<<"la frase inserita è" <<frase <<"\n";
cout<<"il numero di parole è " <<parole <<"\n";
cout<<"la parola più lunga è pari a:" <<max <<"\n";
system("pause");
return 0;
}