K&R C Exercise 1-16: Print True Length of Long Input Lines

Exercise 1-16. Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text. The K&R longest-line program (Section 1.9) stores each input line in a fixed buffer of MAXLINE characters. That design silently truncates any line longer than …

K&R C Exercise 1-13: Histogram of Word Lengths

Exercise 1-13. 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; a vertical orientation is more challenging. Approach The program breaks into two clear phases: counting word lengths, then rendering the histogram. Counting reuses the IN/OUT state machine …

K&R C Exercise 1-12: Print Input One Word Per Line

Exercise 1-12. Write a program that prints its input one word per line. Approach A word is any contiguous run of non-whitespace characters; spaces, tabs, and newlines are all separators. The challenge is not reading words — it is knowing when to emit the newline that separates them in the output. The solution borrows the …

K&R C Exercise 1-7: Print the Value of EOF

Exercise 1-7. Write a program to print the value of EOF. This is one of those exercises that looks trivial — one printf and you’re done — but it opens the door to one of the most important design decisions in the C standard library. Before you can really understand why Chapter 1’s input loops …

K&R C Exercise 1-2: Escape Sequences in printf

Exercise 1-2. Experiment to find out what happens when printf‘s argument string contains \c, where c is some character not listed above. The escape sequences K&R lists in section 1.5 are: \n (newline), \t (tab), \b (backspace), \” (double quote), and \\ (backslash). The exercise asks what happens with everything else. Approach The key insight …

K&R C Exercise 1-1a: The “hello, world” Program

Exercise 1-1. Run the “hello, world” program on your system. Experiment with leaving out parts of the program to see what error messages you get. This is the very first program in The C Programming Language by Kernighan and Ritchie — and for many people, the first C program they ever type. The exercise has …