Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156

    [C] Conteggio elementi di un testo

    Salve, sto cercando di fare un programma che in un testo conti il numero di parole, il numero di frase e il numero di parole per frasi.Le parole, oltre che dagli spazi, possono essere separate da:
    virgola,punto e virgola, punto esclamativo, punto interrogativo, due punti, punto fisso.
    Due dei caratteri appena citati non sono mai consecutivi(per esempio dopo il punto fisso non viene lasciato lo spazio prima di iniziare la prossima frase).

    Se per esempio prendo in esame un testo di questo genere:

    I risultati dovrebbero essere
    n.frasi:3
    n.parole:9
    n.parole per frase:1 7 1
    La compilazione invece è la seguente:

    Vi posto il codice della funzione:
    codice:
    int lettura(char vs[][maxl],int *nf, int npf[])
    {
        FILE* f;
        int i,k,z,b,l;
        b=0;
        char nome[10];
        char a;
        i=0;k=0;z=0;
        printf("Inserire il nome del file:\n");
        scanf("%s", nome);
        f=fopen(nome, "r");
        if(f==NULL)
        {
            i=-1;
        }
        else
        {
        while(feof(f)==0)
        {
            fscanf(f,"%c", &a);
            if(a!=' ' && a!='.' && a!=':' && a!=';' && a!='?' && a!='!' && a!=',')
            {
                vs[i][k]=a;
                k=k+1;
            }
            else
            {
                vs[i][k]='\0';
                i=i+1;
                k=0;
                if(a!=' ' && a!=',')
                {
                    
                    *nf=*nf+1;
                    l=i-b;
                    npf[z]=l;
                    b=i;
                    z=z+1;
                }
                
            }
        }
        fclose(f);
        }
        return i;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156
    Ps: ho notato che se nel file alla fine del testo premo invio e riavvio il programma i risultati sono corretti. Qualcuno sa in che modo l'aggiunta di un carattere new line "aggiusta" le cose?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.