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