Exercise 1.13 - Horizontal Histogram#

Question#

Write a program to print a histogram of the lengths of words in its input. It is easy to draw the histogram with the bars horizontal.

Solution#

/**
 *
 * Print a horizontal histogram of words in the input.
 *
 **/

#include <stdio.h>

int main(void)
{
  int c;

  while((c=getchar()) != EOF)
  {
    if( c == ' ' || c == '\n' || c == '\t')
      putchar('\n');
    else
      putchar('*');
  }
  return 0;
}

Explanation#

We desire the histogram like the following.

If the input is I love C programming

The output should be.:

*
****
*
***********

The way it is accomplished in the above program, read each character using getchar, if it is special character like a space, tab or newline, go to next line by printing n otherwise print a * character.