UIN PROGRAMA QUE CUENTE PALABRAS DE UN ARCHIVO DE TIPO TEXTO URGENTE
POR FAVOR NUNA FUNCION QUE ME JALE UN ARCHIVO DE TIPO TXT Y ME CUENTE CUANTAS VECES SE REPITE CADA PALABRA QUE CONTIENE EL TEXTO Y LO ENVIE A OTRO ARCHIVO DE TIPO TXT E IMPRIMA EL RESULTADO
Solo modifica este programa para que envÃe el resultado al archivo de texto que quieres el resto ya lo hace solo:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void ImprimeOrdenados(char letras[],unsigned short int cont[]);
#define Limite 26
#define Fin ' '
void main(void)
{
register basura;
FILE *arch;
arch=fopen("archivo.bin","rb+");
if(arch!=NULL)
{
char letras[Limite],aux;
unsigned short int cont[Limite],auxcont=0;
letras[0]=Fin;
cont[0]=0;
while(!feof(arch))
{
aux=fgetc(arch);
if(isalpha(aux))
{
aux=toupper(aux);
for(register a=0;a<strlen(letras);a++)
{
if(aux==letras[a])
break;
}//busca letra
if(a==strlen(letras))
{
letras[auxcont]=aux;
cont[auxcont]+=1;
auxcont++;
letras[auxcont]=Fin;
cont[auxcont]=0;
}//no esta esta letra
else
cont[a]+=1;
}//si es letra
}//lee el archivo
ImprimeOrdenados(letras,cont);
}
else
printf("n Error al abrir el archivo!!");
printf("nn Enter Any Key For Exit!! ");
scanf("%d",&basura);
}
void ImprimeOrdenados(char letras[],unsigned short int cont[])
{
char auxLetras;
register auxCont;
for(register a=0;a<strlen(letras);a++) //ordena por numero
{
for(register b=0;b<strlen(letras);b++)
{
if(cont[a]>cont[b])
{
auxCont=cont[a];
cont[a]=cont[b];
cont[b]=auxCont;
auxLetras=letras[a];
letras[a]=letras[b];
letras[b]=auxLetras;
}
}
}//por numero
for(a=0;a<strlen(letras)-1;a++) //ordena por letra
{
if(cont[a]==cont[a+1])//si son iguales
{
if(letras[a]>letras[a+1])
{
auxLetras=letras[a+1];
letras[a+1]=letras[a];
letras[a]=auxLetras;
}
}
}//por letra
for(a=0;a<strlen(letras);a++)
printf("n %c t %d",letras[a],cont[a]);
}
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void ImprimeOrdenados(char letras[],unsigned short int cont[]);
#define Limite 26
#define Fin ' '
void main(void)
{
register basura;
FILE *arch;
arch=fopen("archivo.bin","rb+");
if(arch!=NULL)
{
char letras[Limite],aux;
unsigned short int cont[Limite],auxcont=0;
letras[0]=Fin;
cont[0]=0;
while(!feof(arch))
{
aux=fgetc(arch);
if(isalpha(aux))
{
aux=toupper(aux);
for(register a=0;a<strlen(letras);a++)
{
if(aux==letras[a])
break;
}//busca letra
if(a==strlen(letras))
{
letras[auxcont]=aux;
cont[auxcont]+=1;
auxcont++;
letras[auxcont]=Fin;
cont[auxcont]=0;
}//no esta esta letra
else
cont[a]+=1;
}//si es letra
}//lee el archivo
ImprimeOrdenados(letras,cont);
}
else
printf("n Error al abrir el archivo!!");
printf("nn Enter Any Key For Exit!! ");
scanf("%d",&basura);
}
void ImprimeOrdenados(char letras[],unsigned short int cont[])
{
char auxLetras;
register auxCont;
for(register a=0;a<strlen(letras);a++) //ordena por numero
{
for(register b=0;b<strlen(letras);b++)
{
if(cont[a]>cont[b])
{
auxCont=cont[a];
cont[a]=cont[b];
cont[b]=auxCont;
auxLetras=letras[a];
letras[a]=letras[b];
letras[b]=auxLetras;
}
}
}//por numero
for(a=0;a<strlen(letras)-1;a++) //ordena por letra
{
if(cont[a]==cont[a+1])//si son iguales
{
if(letras[a]>letras[a+1])
{
auxLetras=letras[a+1];
letras[a+1]=letras[a];
letras[a]=auxLetras;
}
}
}//por letra
for(a=0;a<strlen(letras);a++)
printf("n %c t %d",letras[a],cont[a]);
}