Exercise 1.9 - Replace Continous blanks with a single blank¶
Question¶
Write a program to copy its input to its output, replacing each string of one or more blanks by a single blank.
Solution¶
/**
* 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.
*
* */
#include <stdio.h>
#define NONBLANK '-'
int main(void) {
int c, lastc;
lastc = NONBLANK;
while ((c = getchar()) != EOF) {
if (c == ' ') {
if (lastc != ' ')
putchar(c);
} else
putchar(c);
lastc = c;
}
return 0;
}
Explanation¶
The essence of this program is, while reading the characters, if the last character that we encoutered is a blank, then we skip printing it.
if(lastc!=' ')
putchar(c);
This means that if the last character is not a blank, only then print it. We store the last character in the lastc variable in the line lastc = c. For rest of the characters we simplying print it by putchar (c).