-
Notifications
You must be signed in to change notification settings - Fork 0
/
ej1-5-3_ESCaracteres_conteo_lineas-Ejercicio_1-9.c
57 lines (49 loc) · 1.53 KB
/
ej1-5-3_ESCaracteres_conteo_lineas-Ejercicio_1-9.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Ejemplo de la Sección 1.5 Entrada y salida de caracteres
1.5.3 Conteo de líneas
Ejercicio 1-9
del Libro del Lenguaje de Programación C, pag. 21
El siguiente código fuente de programa
lee de la entrada estandar (teclado)
y la manda a la salida estandar (pantalla)
reemplazando cada cadena de uno o más caracteres en blanco
por un solo caracter blanco ' '
*/
#include <stdio.h>
#define WHITE 1 // es un caracter de espacio en blanco ' '
#define OTHER 0 // cualquier otro caracter distinto de espacio en blanco
main()
{
// Declaración de variables
int c, countb, waswhite;
// inicialización del contador de caracter espacio en blanco ' '
countb = 0;
// inicialización de la varible que controla si el caracter ingresado previamente era un espacio en blanco
waswhite = OTHER;
// Esto saca los espacios en blanco dejando un solo caracter espacio en blanco
// No hace nada con los caracteres de tabulación '\t'
while( ( c = getchar() ) != EOF )
{
if ( c != ' ' )
{
putchar(c);
waswhite = OTHER;
}
if ( c == ' ' )
{
++countb; // incrementa en uno el contador de caracteres de espacios en blanco
if ( waswhite == OTHER )
{
putchar(c);
waswhite = WHITE;
}
if ( waswhite == WHITE )
{
// Este es blanco y el anterior también es blanco entonces no pone este
//putchar(c);
waswhite = WHITE;
}
}
}
printf("\nCantidad de espacios en blanco: %d\n", countb);
// Para poder ver las cantidades al ejecutar, presionar la combinación de teclas [Ctrl] + [d]
}