Contar el numero de veces que aparece cada palabra en una frase
Hola a todos, bueno resulta que quiero contar el numero de veces que aparece cada palabra en cada frase de un fichero. Lo mas simple posible. Sera una funcion osea que no tengo k imprimir nada en pantalla ya hare con los resultados otras cosas. es decir,
es decir, si tengo "hola pedro , como estas pedro ?."
hola=1
pedro=2
,=1
como=1
...
Habia pensado cojer una palabra y luego contar desde su posicion las veces que se repite, supongo k habran maneras mucho mejores de hacerlo que esta pero no se me ocurre cual. Podria almacenar primero todas las palabras en un vector y luego para cada palabra recorrer otra vez la frase contando. Pero nose como hacer un vector de palabras la verdad. Me han dicho de usar diccionarios o tablas hash pero no encuentro manuales k m valgan, tampoco me interesa k sea eficiente con k funcione me basta, ya me encargare luego de darle eficiencia.
de hecho, podria usar search_n con palabras?
algo asi habia pensado, un boceto:
...
vector palabra[20];
while(fichero.getline(linea,1024)){
while(linea!="/n" || "."){
palabra[i]= linea[i];
i++}
// ya tengo la palabra, como recorro de nuevo la linea si estoy en teoria en la posicion i ?
while(linea<1024){
//como comparo caracter a caracter y si no corresponde vuelvo a empezar con la posicion 2? uso getchar? existe algun tipo de getword?
//habia pensado en comparar los primeros caracteres, si son iguales avanzo la palabra i sigo comparando, si no lo son avanzo la frase
while(palabra){
if palabra[i] = linea[u] , i++
if
else linea++
}
ando muy perdido se nota no
es decir, si tengo "hola pedro , como estas pedro ?."
hola=1
pedro=2
,=1
como=1
...
Habia pensado cojer una palabra y luego contar desde su posicion las veces que se repite, supongo k habran maneras mucho mejores de hacerlo que esta pero no se me ocurre cual. Podria almacenar primero todas las palabras en un vector y luego para cada palabra recorrer otra vez la frase contando. Pero nose como hacer un vector de palabras la verdad. Me han dicho de usar diccionarios o tablas hash pero no encuentro manuales k m valgan, tampoco me interesa k sea eficiente con k funcione me basta, ya me encargare luego de darle eficiencia.
de hecho, podria usar search_n con palabras?
algo asi habia pensado, un boceto:
...
vector palabra[20];
while(fichero.getline(linea,1024)){
while(linea!="/n" || "."){
palabra[i]= linea[i];
i++}
// ya tengo la palabra, como recorro de nuevo la linea si estoy en teoria en la posicion i ?
while(linea<1024){
//como comparo caracter a caracter y si no corresponde vuelvo a empezar con la posicion 2? uso getchar? existe algun tipo de getword?
//habia pensado en comparar los primeros caracteres, si son iguales avanzo la palabra i sigo comparando, si no lo son avanzo la frase
while(palabra){
if palabra[i] = linea[u] , i++
if
else linea++
}
ando muy perdido se nota no
