Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    programma conta parole

    ciao a tutti!! la mia ragazza siccome ha scritto una storia per un concorso, voleva sapere il numero di parole da lei scritte per vedere se rientrava nel regolamento siccome c'è un numero minimo e massimo di parola da inserire, io avevo in mente di far inserire il racconto a poi con un for vedere quanti spazi ci sono per vedere il numero di parole, ma mi servono due cose
    1) il codice ascii dello spazio (così metto un if nel for che scorre l'array e incremento una variabile per contare gli spazi col codice ascii)
    2) per farlo bene mi servirebbe fare un array infinito, io per fare una cosa che si avvicini a questo posso farlo con le pile o code, solo che devo inserire una lettera per volta, io invece voglio inserire tutto con un copia incolla come una normale stringa
    come faccio?
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319

    Moderazione

    Manca il linguaggio di programmazione da utilizzare (obbligatorio anche nel titolo, come da Regolamento).

    Poi dovresti postare il codice da te redatto e indicare la parte dove richiedi aiuto.


    PS: Ma non fai prima a dire alla tua ragazza di aprire Word e di utilizzare il menu Strumenti/Conteggio parole??


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    orca!!! il linguaggio giusto!!! comunque è il C++
    word offre questa opzione? bè allora stasera faccio il figo bè, però mi ha incuriosito sta cosa, anche perchè una pila che posso inserire come un array di char mi servirà prima o dopo, se sapete dirmelo mi fate un favore, il codice non so come scriverlo perchè non so fare un array infinito, va bè lo faccio con un array sovradimensionato
    codice:
    main()
    {
    	char s[100000];
    	int c, i;
    	cout<<"inserisci testo";
    	cin>>s;
    	for(i=0;s[i]!='\0';i++)
    		if(s[i]==//codice ascii della barra spaziatrice)
    			c++;
    	cout<<"numero spazi="<<c;
    	getch();
    }

  4. #4
    Così fai il figo:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    int main(void) {
    
       FILE *fp = NULL;
       int words = 0;
    
       fp = fopen("file_con_racconto.txt", "r");
    
       if(!fp){
    
          printf("Errore di apertura del file");
          return 1;
    
       }
    
       while(!feof(fp)) {
    
          if(isspace(fgetc(fp)))
             word++;
    
       }
    
       printf("%d words\n");
    
       return 0;
    
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    bbbbbbbbeeeeeeeeelllllllllllllllllllliiiiiiiiiiiii sssssssssssssiiiiiiiiiiiiiiiiiiiiimmmmmmmmmmmmmooo ooooooooo
    con questo posso fare il figo fichè campo!!!! bello!!!

  6. #6
    E se ogni tanto le "scappano" due spazi o non mette uno spazio dopo un segno di punteggiatura?
    Lascia fare a Word che è meglio...
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Originariamente inviato da MItaly
    E se ogni tanto le "scappano" due spazi o non mette uno spazio dopo un segno di punteggiatura?
    Lascia fare a Word che è meglio...

  8. #8
    codice:
    Ciao                                                                                                                        Fine
    codice:
    120 words
    :master:

    (tra l'altro...
    codice:
       printf("%d words\n",word);
    )
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    già, è vero, tu come lo avresti fatto allora?

  10. #10
    Qualcosa del genere?
    codice:
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <locale>
    using namespace std;
    
    int main()
    {
        locale loc("");
        string fileName;
        unsigned int wordCount=0, charCount=0;
        bool lastAlNum=false;
        cout<<"Nome file: ";
        getline(cin, fileName);
        ifstream is;
        is.open(fileName.c_str());
        if(!is)
        {
            cerr<<"Impossibile aprire il file."<<endl;
            return 1;
        }
        while(is)
        {
            if(!use_facet< ctype<char> >(loc).is(ctype<char>::alpha | ctype<char>::digit,is.get()))
            {
                if(lastAlNum)
                    wordCount++;
                lastAlNum=false;
            }
            else
                lastAlNum=true;
    	charCount++;
        }
        is.close();
        cout<<charCount<<" caratteri"<<endl;
        cout<<wordCount<<" parole"<<endl;
        return 0;
    }
    Potrebbe dare qualche problema con le lettere accentate se l'implementazione di locale non è fatta come Dio comanda.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.