Curso de Programación en C/Prog50
Ir a la navegación
Ir a la búsqueda
Prog50
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#define STOP '|'
int main( void )
{
char c,
prev;
long n_chars = 0L;
int n_lineas = 0,
n_palabras = 0,
p_lineas = 0;
bool inpalabra = false;
printf( "Introduzca el texto para analizar (| para terminar):\n" );
prev = '\n'; // Para conocer líneas completos
while( ( c = getchar() ) != STOP )
{
n_chars++;
if( c == '\n' )
n_lineas++;
if( !isspace(c) && !inpalabra )
{
inpalabra = true;
n_palabras++;
}
if( isspace( c ) && inpalabra )
inpalabra = false;
prev = c;
}
if( prev != '\n' )
p_lineas = 1;
printf( "characters = %ld, palabras = %d, líneas = %d, ",
n_chars, n_palabras, n_lineas);
printf( "líneas parciales = %d\n", p_lineas );
return 0;
}
Resultado
[rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog50 Prog50.c [rrc@Pridd CClase]$ ./Prog50 Introduzca el texto para analizar (| para terminar): LinuxCabal fue fundado en San Francisco, California en 1996, y desde 2005 reside en Guadalajara | characters = 98, palabras = 15, líneas = 2, líneas parciales = 0