Contador de caracteres, líneas, etc. de un texto

Pilar Masoli

/* PROGRAMA QUE CUENTA LOS CARACTERES,
LINEAS, BLANCOS, TABULADORES, PALABRAS
O LAS REPETICIONES DE UN DETERMINADO CARACTER
DE UN TEXTO QUE SE INTRODUCE POR TECLADO ;
EL PROGRAMA ESTA ESTRUCTURADO DE MANERA QUE
CADA UNA DE ESTAS ACCIONES ES REALIZADA
POR UNA FUNCION DISTINTA  */

#include <stdio.h>
#include <stdlib.h>
#include <conio_mingw.h>

void cont_car(void);
void cont_lin(void);
void cont_blan(void);
void cont_tab(void);
void cont_veces(void);
void cont_pal(void);

main()
{
char cod;
int control=1;

while(control)   /*hago un menu*/
{
printf(“\n\n”);
system(“pause”);
system(“cls”);               /*borro la pantalla*/
printf(“\nIntroduce una letra: \n “);
printf(”    c:contar caracteres \n “);
printf(”    l:contar lineas \n “);
printf(”    b:contar blancos \n “);
printf(”    t:contar tabuladores \n “);
printf(”    v:contar el numero de veces que se repite un caracter \n “);
printf(”    p:contar palabras \n “);

printf(”    s:salir del programa \n “);

cod=getchar();
fflush(stdin);                /*limpia el buffer de teclado*/
switch (cod) {
case  ‘c’ : cont_car();
break;
case  ‘l’ : cont_lin();
break;
case  ‘b’ : cont_blan();
break;
case  ‘t’ : cont_tab();
break;
case  ‘p’ : cont_pal();
break;
case  ‘v’ :  cont_veces();
break;
case  ‘s’ :  control=0;        /*Como el control cambia a 0, me da como falso
y termina el programa*/
break;
default :   printf(“\n Has elegido mal la letra \n”);
break;
}
}
printf(“\n\n”);
system(“PAUSE”);
}

/* contaje de caracteres */

void cont_car(void)
{
char c;
long nc=0;

printf(“\n Introduce un texto acabado en CTRL+Z :\n”);

while((c=getchar())!=EOF)     /*End Of File*/
if(c!=’\n’)
++nc;

printf(“\n\n\n El numero de caracteres del texto es: %ld \n “,nc);
}

/*contaje de lineas*/

void cont_lin(void)
{
char c,c1;
int nl=0;

printf(“\n Introduce un texto acabado en CTRL+Z :\n”);       /*tengo que bajar de linea,
para poner el ctrl+z*/
c=getchar();
while (c!=EOF)
{
if (c==’\n’)
nl++;
c=getchar();
}
//nl=nl+1;
printf(“\n\n\n El numero de lineas del texto es: %d \n”,nl);
}

/*contaje de blancos*/

void cont_blan(void)
{
long nb=0;
char c;

printf(“\n Introduce un texto acabado en CTRL+Z :\n”);
while ((c=getchar())!=EOF)
{
if(c==’ ‘)
nb++;
}

printf(“\n\n\n El numero de blancos del texto es: %ld \n”,nb);
}

/*contaje de tabuladores*/

void cont_tab(void)
{
char c;
int nt=0;

printf(“\n Introduce un texto acabado en CTRL+Z :\n”);
while ((c=getchar())!=EOF)
{
if(c==’\t’)
nt++;
}
printf(“\n\n\n El numero de tabuladores del texto es: %d \n “,nt);
}

/*contaje del numero de veces que sale un caracter determinado*/
void cont_veces(void)
{
long nv=0;
char c;
char car;

fflush(stdin);
printf(“\n Introduce el caracter a contar: “);
car=getchar();

printf(“\n Introduce ahora un texto acabado en CTRL+Z :\n”);
while ((c=getchar())!=EOF)
{
if (c==car)
nv++;
}

printf(“\n\n\n El caracter %c sale %ld veces en ese texto. \n”,car,nv);
}

/*contaje de palabras */
/*Al contar el numero de palabras, supongo que despues de una
palabra o bien viene un espacio en blanco o bien viene un retorno
de carro. Tambien supongo que despues de la ultima palabra no
hay nada*/

void cont_pal(void)
{
long np=0;
char c,c1;

printf(“\n Introduce un texto acabado en CTRL+Z :\n”);

/*Leo caracteres hasta encuentro un espacio en blanco, que no siga un espacio
en blanco(tengo que guardar el ultimo carcter)*/

c=getchar();
c1=c;

while ((c=getchar())!=EOF)
{
if(c1!=’ ‘ && (c==’ ‘||c==’\n’||c==’\t’))
if(c1!=’\n’&& c1!=’\t’)   np++;
c1=c;
}

printf(“\n\n\n El numero de palabras del texto es: %d \n”,np);
}

Esta entrada fue publicada en Ciencia y programación. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s