Dev - C++ - Contar todas las palabras diferentes en un archivo de texto

 
Vista:

Contar todas las palabras diferentes en un archivo de texto

Publicado por Paola (1 intervención) el 23/02/2019 05:29:35
Hola chicos como están, estoy incursionando en este mundo del desarrollo y me dejaron esto y la verdad no tengo idea, por favor alguien puede ayudarme, quedaría eternamente agradecida
Gracias.

Escriba un programa rápido en (Shell, Python, Perl, Java, Lisp, C ++, APL, o lo que sea) para obtener un recuento de todas las "palabras" diferentes en un archivo de texto. Use cualquier definición de palabra que tenga sentido lógico o que facilite su trabajo. La salida podría verse así:

17 a
14 the
9 of
9 in
8 com
7 you
7 that
7 mercedsystems
6 to
...

Para este archivo de entrada, la palabra "a" ocurrió 17 veces, "the" 14 veces, etc.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Contar todas las palabras diferentes en un archivo de texto

Publicado por Alfil (1444 intervenciones) el 23/02/2019 20:36:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <fstream>
#include <vector>
 
using namespace std;
 
class Palabra {
public:
    Palabra( string = "", int = 0 );
    void establecerTotal();
    void establecerPalabra( string );
    int obtenerTotal() { return total; }
 
    bool bucarPalabra();
    void insertarPalabra( Palabra );
    void imprimir();
 
    string obtenerPalabra() { return palabra; }
    static int obtenerGranTotal() { return granTotal; }
private:
    int total;
    string palabra;
    static int granTotal;
};
 
int Palabra::granTotal = 0;
 
Palabra::Palabra( string p, int n ){
    palabra = p;
    total = n;
}
 
void Palabra::establecerTotal() { total++; }
void Palabra::establecerPalabra( string p ) { palabra = p; }
 
vector<Palabra> V;
 
bool Palabra::bucarPalabra(){
 
    string s;
    vector<Palabra>::size_type sz = V.size();
 
    for( unsigned i = 0; i < sz; i++ ){
        s = V[i].obtenerPalabra();
        if( s == palabra ){
            V[i].establecerTotal();
            granTotal++;
            return true;
        }
    }
    granTotal++;
    return false;
}
 
void Palabra::insertarPalabra( Palabra p ){
 
    p.establecerTotal();
    V.push_back( p );
 
}
 
void Palabra::imprimir(){
 
    vector<Palabra>::size_type sz = V.size();
 
    cout << "Total palabras leidas: "
                 << Palabra::granTotal << endl;
 
    for( unsigned i = 0; i < sz; i++ ){
 
        cout << "La palabra " << V[i].obtenerPalabra()
             << " aparece " << V[i].obtenerTotal()
             << " veces.\n";
        }
    cout << endl;
}
 
int main(){
 
    Palabra p;
    string s;
 
    ifstream fe("Palabras.txt", ios::in );
 
    while( !fe.eof() ){
        fe >> s;
        p.establecerPalabra( s );
        if( p.bucarPalabra() )
            p.establecerTotal();
        else
            p.insertarPalabra( s );
    }
    fe.close();
 
    p.imprimir();
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar