Contare lettere parole in C

di il
3 risposte

Contare lettere parole in C

Devo fare un programma che per ogni parola che acquisisco devo contare le lettere di ogni singola parola. La mia idea è di fare un ciclo for che quando mi trova uno spazio, mi fa un altro ciclo for che va fino a quando trova lo spazio successivo e durante questo ciclo metto una variabile che mi conta quante lettere ci sono. Per ora ho fatto questo (posto solo questo pezzo di programma)
for(i=0;i<strlen(stringa);i++)
    {
        if((isspace(stringa[i])!=0) && (isalpha(stringa[i+1])!=0))
        {
            for(j=0;isspace(stringa[j])!=0;j++)
            {
                if(isalpha(stringa[j])!=0)
                {
                    k=k+1;
                }
            }
            printf("Parola da %d lettere \n",k);
        }

    }
Il fatto è che mi da sempre che k=0. (Non ho ancora inserito quando devo contare anche la prima parola, per ora sto pensando a quelle successive)

3 Risposte

  • Re: Contare lettere parole in C

    Come per gli altri thread ... questa riga

    if(isalpha(stringa[j])!=0)

    è inutile. Si scrive

    if(isalpha(stringa[j]))
  • Re: Contare lettere parole in C

    Quindi non devo mettere !=0? E quaando invece voglio vedere se non è uno spazio lo devo mettere o no ==0?
    Comunque ho provato a modificare ma mi dà sempre lo stesso risultato
  • Re: Contare lettere parole in C

    Non è che lo 0 non va bene ... ma è più chiaro (e rischi di sbagliare meno ...) scrivere

    if(isalpha(stringa[j]))

    if(! isalpha(stringa[j]))

    Per il problema, utilizza una for che conta i caratteri della stringa ... da 0 a lunghezza-1 e ragiona all'interno del for ....
Devi accedere o registrarti per scrivere nel forum
3 risposte