Problema conteggio parole in stringa

di il
3 risposte

Problema conteggio parole in stringa

Salve a tutti, stavo cercando di creare una funzione che mi contasse le parole all'interno di una frase, tuttavia ho un problema: il contatore è come se si bloccasse a se inserisco più di una parola, qualcuno saprebbe aiutarmi? Il codice è il seguente:

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int conteggio(char frase[]);

int main(int argc, char** argv) {
	char stringa[100];
	cout<<"Inserisci la frase da analizzare"<<endl;
	cin>>stringa;
	cout<<"Verifica numero di parole"<<endl;
	cout<<conteggio(stringa);
	
	
	return 0;
}


int conteggio(char frase[])
{ int n=0;
	for(int i=0;i<strlen(frase);i++)
	{if(frase[i]!=' ')
	  {if(frase[i+1]==' '||i==strlen(frase)-1)
		{n++;
		}
	}
	
	}
return n;	
}

Ringrazio tutti in anticipo.

3 Risposte

  • Re: Problema conteggio parole in stringa

    Non hai fatto un po' di debugging per capire dove può essere il problema?

    Inserisci delle printf per capire come variano i dati e capire ...
  • Re: Problema conteggio parole in stringa

    Diciamo che sono alle prime armi con c++.
    Ho cercato di eliminare il primo if, in quanto valutando col secondo l 'indice [i++]=' ',mi sembrava ridondante, ma il risultato resta invariato.
  • Re: Problema conteggio parole in stringa

    Risolto.
    Bisogna inserire la stringa con la dicitura
    
    gets(stringa)
    
    avrà un problema con il conteggio degli spazi con la dicitura cin>>stringa.
    Lo scrivo per qualcuno che in futuro avrà il mio stesso problema e visualizzerà la discussione.
    Buona giornata a tutti!
Devi accedere o registrarti per scrivere nel forum
3 risposte