Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define NULA -1
- typedef struct palabra{
- char cad[40];
- int frec;
- } Palabra;
- int buscar(Palabra *vector,char cadena[40],int talla)
- {
- int i;
- for(i=0;i<talla;i++)
- {
- if(strcmp(vector[i].cad,cadena) == 0)
- {
- return i;
- }
- }
- return NULA;
- }
- void orden_alfabetico(Palabra *vector,int cont)
- {
- char cadena[40];
- int i,j,aux,aux2;
- for(i=0;i<cont-1;i++)
- {
- for(j=i+1;j<=cont-1;j++){
- aux=strcmp(vector[i].cad,vector[j].cad);
- if(aux > 0)
- {
- strcpy(cadena,vector[j].cad);
- aux2 = vector[j].frec;
- strcpy(vector[j].cad,vector[i].cad);
- vector[j].frec = vector[i].frec;
- strcpy(vector[i].cad,cadena);
- vector[i].frec = aux2;
- }
- }
- }
- }
- void mostrarPalabrasFrecuencia(FILE *entrada,FILE **salida)
- {
- Palabra *vector = NULL;
- char cadena[40];
- char cadena_aux[40];
- int i=0,j,talla,cont,pos;
- while(fscanf(entrada,"%s",cadena) != EOF)
- {
- cont=0;
- talla = strlen(cadena);
- for(j=0;j<talla;j++)
- {
- if(isalpha(cadena[j]))
- {
- cont++;
- }
- cadena_aux[j] = tolower(cadena[j]);
- }
- cadena_aux[j]='\0';
- if(cont == talla)
- {
- pos = buscar(vector,cadena_aux,i);
- if(pos != NULA)
- {
- vector[pos].frec++;
- }
- else
- {
- vector = (Palabra *) realloc (vector,sizeof(Palabra) * (i+1));
- vector[i].frec = 1;
- strcpy(vector[i].cad,cadena_aux);
- i++;
- }
- }
- }
- orden_alfabetico(vector,i);
- for(j=0;j<i;j++)
- {
- printf("%s %d\n",vector[j].cad,vector[j].frec);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement