Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/11/2011, 20:53
Avatar de almaesdi
almaesdi
 
Fecha de Ingreso: enero-2005
Mensajes: 70
Antigüedad: 19 años, 11 meses
Puntos: 0
Buscar Repeticiones palabras en un Array

Hola Gente, usó el buscador y no encontre nada relacionado...

Tengo que calcular la Entropía de un texto, para eso debo analizar un texto escrito por el usuario, yo por mis funciones al texto ingresado le saco todos los distractores como las ",.:;?!\n\t, etc.
Al final me quedan puras palabras y hartos espacios en blanco...
Se me olvida decir que el texto lo guardo en una matriz bidimensional, 10 lineas 140 caracteres (columnas)...
Mi problema es el siguiente, para calcular la entropia debo saber cuantas veces se me repite cada palabra, ahi esta mi problema, no sé me ocurre como hacerlo...Hize este codigo aparte(con un array de una dimension) pero solo me funciona para calcular la repeticion de la primera palabra, adicionalmente, la cadena original se me modifica y pierdo todas las demas palabras:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

main(){
   char s1[49] = "Hola como estas Hola como Hola Hola chao bye";
   char s2[4] = " \n\t";
   char *palabra;
   char *ptr;
   int repeticion=1;
   
      
   ptr = strtok( s1, s2 );    // Primera llamada => Primer token
   palabra=ptr;
     
   while( (ptr = strtok( NULL, s2 )) != NULL ){    // Posteriores llamadas
     
     if( strcmp( palabra, ptr ) == 0 ){
     repeticion++;
       }
       
   }
   
   printf("La palabra %s se repite %d veces\n",palabra,repeticion);
   printf("La cadena quedo: %s\n",s1);
   system("pause");   
}
Si me ayudan con este ejemplo, despues podria aplicarlo en una matriz...me sirve cualquier solucion...

gracias