#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define MAX_BUFFER 5 void metodo1() { FILE *archivo; char caracter; int contadores[3]={0,0,0};
archivo=fopen("entrada.txt","rt");
while(!feof(archivo)) { caracter=fgetc(archivo); if (islower(caracter)) { contadores[0]++; } else if (isupper(caracter)) { contadores[1]++; } else { //if ((caracter!=EOF) && (caracter!='\n'){ ) contadores[2]++; //} } } printf("minusculas:%d\n",contadores[0]); printf("mayusculas:%d\n",contadores[1]); printf("otros:%d\n",contadores[2]); fclose(archivo);
} void metodo2() { FILE *archivo; char caracteres[MAX_BUFFER]; long int leidos,i; int contadores[3]={0,0,0};
archivo=fopen("entrada.txt","rb");
leidos=fread( caracteres, 1, MAX_BUFFER, archivo ); while (leidos>0) { for (i=0;i<leidos;i++) { if (islower(caracteres[i])) { contadores[0]++; } else if (isupper(caracteres[i])) { contadores[1]++; } else { contadores[2]++; } } leidos=fread( caracteres, sizeof(char), MAX_BUFFER, archivo ); }
fclose(archivo);
printf("minusculas:%d\n",contadores[0]); printf("mayusculas:%d\n",contadores[1]); printf("otros:%d\n",contadores[2]); }
void metodo3() { FILE *archivo; char *caracteres; long int comienzo, longitud,i; int contadores[3]={0,0,0};
archivo=fopen("entrada.txt","rb"); comienzo=ftell( archivo ); fseek( archivo, 0L, SEEK_END ); longitud = ftell( archivo )-comienzo; rewind( archivo ); caracteres= (char*) malloc(longitud); fread( caracteres, 2, longitud, archivo ); fclose(archivo);
for (i=0;i<longitud;i++) { if (islower(caracteres[i])) { contadores[0]++; } else if (isupper(caracteres[i])) { contadores[1]++; } else { contadores[2]++; } }
printf("minusculas:%d\n",contadores[0]); printf("mayusculas:%d\n",contadores[1]); printf("otros:%d\n",contadores[2]); free( caracteres); }
int main(int argc, char** argv) { metodo1(); metodo2(); metodo3(); return 0; }
|