Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://rextester.com/CZUB2712
- #define NULA -1
- typedef struct dominio{
- char dom[255];
- int frec;
- } Dominio;
- int buscar(Dominio *vector,char *cadena,int talla)
- {
- int i;
- for(i=0;i<talla;i++)
- {
- if(strcmp(vector[i].dom,cadena) == 0)
- {
- return i;
- }
- }
- return NULA;
- }
- int comparar(const void * a,const void * b)
- {
- Dominio * ptrA = (Dominio *) a;
- Dominio * ptrB = (Dominio *) b;
- if(ptrA -> frec < ptrB -> frec)return 1;
- else return 0;
- }
- int comparar_2(const void * a, const void * b)
- {
- Dominio * ptrA = (Dominio *) a;
- Dominio * ptrB = (Dominio *) b;
- if(strcmp(ptrA->dom , ptrB->dom) > 0) return 1;
- else return 0;
- }
- void dominiosYFrecuencia(FILE *entrada,FILE **salida)
- {
- Dominio *vector = NULL;
- char cadena[320];
- char cadena_aux[255];
- char *aux;
- int pos,i=0,j,talla;
- while(fscanf(entrada,"%s",cadena) != EOF)
- {
- aux = strchr(cadena,'@')+1;
- talla = strlen(aux);
- for(j=0;j<talla;j++)
- {
- cadena_aux[j] = tolower(aux[j]);
- }
- cadena_aux[j]= '\0';
- //printf("%s\n",cadena_aux);
- pos = buscar(vector,cadena_aux,i);
- if(pos == NULA)
- {
- vector = (Dominio *) realloc (vector,sizeof(Dominio) * (i+1));
- strcpy(vector[i].dom,cadena_aux);
- i++;
- }
- else
- {
- vector[pos].frec++;
- }
- }
- qsort(vector,i,sizeof(Dominio),comparar_2);
- qsort(vector,i,sizeof(Dominio),comparar);
- for(j=0;j<i;j++)
- {
- printf("%s %d\n",vector[j].dom,vector[j].frec+1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement