Curso de Programación en C/Prog50
Ir a la navegación
Ir a la búsqueda
Prog50
1 #include <stdio.h>
2 #include <ctype.h>
3 #include <stdbool.h>
4
5 #define STOP '|'
6
7 int main( void )
8 {
9 char c,
10 prev;
11
12 long n_chars = 0L;
13
14 int n_lineas = 0,
15 n_palabras = 0,
16 p_lineas = 0;
17
18 bool inpalabra = false;
19
20 printf( "Introduzca el texto para analizar (| para terminar):\n" );
21 prev = '\n'; // Para conocer líneas completos
22 while( ( c = getchar() ) != STOP )
23 {
24 n_chars++;
25 if( c == '\n' )
26 n_lineas++;
27 if( !isspace(c) && !inpalabra )
28 {
29 inpalabra = true;
30 n_palabras++;
31 }
32 if( isspace( c ) && inpalabra )
33 inpalabra = false;
34 prev = c;
35 }
36
37 if( prev != '\n' )
38 p_lineas = 1;
39 printf( "characters = %ld, palabras = %d, líneas = %d, ",
40 n_chars, n_palabras, n_lineas);
41 printf( "líneas parciales = %d\n", p_lineas );
42
43 return 0;
44 }
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