Re: [C] Problema produzione di una statistica

Messaggioda fabiett » 03/01/2017, 21:20

Ti ringrazio molto per la pazienza e la grande disponibilità, forse dovuta anche alla passione.
Se può interessarti alla fine sono riuscito a trovare il problema: la statistica non mi contava le ultime lettere della parole probabilmente perché una volta che il ciclo for raggiungeva il terminatore di stringa, i caratteri contati non venivano copiati nella rispettiva locazione del vettore. Ho risolto contando la lunghezza della stringa con la funzione di libreria strlen() e ho impostato la fine del ciclo una volta che il conteggio arriva a i=lenght (ultimo carattere della stringa).

Sempre se può interessarti posto il codice di seguito.
Ciao e grazie ancora! :D
Codice:
//STATISTICA
            lenght=strlen(s);
            for(i=0;i<=lenght;i++)
            {
                if(isalnum(s[i])!=0)
                    n_caratteri++;
                else
                {
                    y=n_caratteri;
                    p[y]++;
                    n_caratteri=0;
                    y=0;
                }
            }
Il pensiero fa la grandezza dell'uomo - Pascal
Avatar utente
fabiett
Junior Member
Junior Member
 
Messaggio: 49 di 254
Iscritto il: 27/09/2016, 17:33
Località: Torino

Re: [C] Problema produzione di una statistica

Messaggioda vict85 » 15/01/2017, 22:51

fabiett ha scritto:Si scriva un programma che acquisisca utilizzando la funzione gets una stringa composta da un massimo di 5 parole separate da spazi, per un totale di massimo 60 caratteri.


La funzione gets era una funzione standard del C, ma non lo è più da ben 6 anni. Prima di essere stata tolta era stata deprecata e lo è stata per circa 12 anni. E immagino che fosse sconsigliata ben prima di essere deprecata ufficialmente (direi che saranno 30 anni che questa funzione viene sconsigliata e considerata poco sicura). Pertanto trovo davvero osceno di leggere ancora oggi degli esercizi che ne prevedono l'uso (considerando che non andrebbe neanche spiegata o presa in considerazione come opzione). Sostituiscila con una chiamata a fgets.
vict85
Moderatore
Moderatore
 
Messaggio: 8967 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: [C] Problema produzione di una statistica

Messaggioda fabiett » 16/01/2017, 01:28

Posso chiedere, a puro titolo informativo, perché tale funzione è così tanto sconsigliata?
Può essere sostituita con una scanf("%[^\n]",....)
Il pensiero fa la grandezza dell'uomo - Pascal
Avatar utente
fabiett
Junior Member
Junior Member
 
Messaggio: 66 di 254
Iscritto il: 27/09/2016, 17:33
Località: Torino

Re: [C] Problema produzione di una statistica

Messaggioda vict85 » 16/01/2017, 19:57

Non vedo perché dovresti usare scanf invece di fgets: scanf è sia più complesso da scrivere che più lento.

In ogni caso puoi leggerti la seconda risposta in questo e questa serie di 10 post.
vict85
Moderatore
Moderatore
 
Messaggio: 8968 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: [C] Problema produzione di una statistica

Messaggioda fabiett » 16/01/2017, 21:46

Grazie! :-o
Il pensiero fa la grandezza dell'uomo - Pascal
Avatar utente
fabiett
Junior Member
Junior Member
 
Messaggio: 67 di 254
Iscritto il: 27/09/2016, 17:33
Località: Torino

Precedente

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite