aboutsummaryrefslogtreecommitdiff
path: root/ch1/1-09_single-spacing.c
blob: ab629c5bcc37985437e3bc650c31ce84507ad3aa (plain)
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
#include <stdio.h>

/* The C Programming Language, 2nd Edition
 *
 * Exercise 1-9: Write a program to copy its input to its output, replacing each
 * string of one or more blanks by a single blank.
 *
 * Answer: Run a loop with getchar() and check its value. If it's a space, count
 * it, but prevent further spaces from being printed. Anything else should
 * simply be spat out.
 */

int main(void) {
	char c;
	int spaces = 0;

	while ((c = getchar()) != EOF) {
		if (c == ' ') {
			if (spaces == 0) {
				putchar(c);
			}
			spaces++;
		} else {
			spaces = 0;
			putchar(c);
		}
	}

	return 0;
}