Наступна програма лічить введені рядки. Як ми згадали вище, стандартна бібліотека забезпечує тим, щоб потік ввідного тексту з'являвся як послідовність рядків, кожен з яких закінчується символом нового рядка. Тому відлік рядків — це просто підрахунок символів нового рядка:
 #include <stdio.h>
  
 /* лічить рядки вводу */
 main()
 {
 int c, nl;
  
 nl = 0;
 while ((c = getchar()) != EOF)
 if (c == '\n')
 ++nl;
 printf("%d\n", nl);
 }
 Корпус while тепер включає умову if, яка, в свою чергу, керує приростом ++nl. Твердженняif перевіряє умову в дужках, і якщо вона істинна, виконує наступне твердження (або групу тверджень у фігурних дужках). Ми знову намагались показати, що контролюється чим.
 Подвійний знак рівності == є нотацією C для «рівний з» (подібний до одного знака = Pascal або.EQ мови Fortran). Використовуються два символи рівності ==, щоб відрізнити перевірку на рівність від одного =, який у C означає присвоєння. Невеличке застереження: новачки C іноді пишуть = там, де вони мають на увазі ==. Як ми побачимо з Розділу 2, результат зазвичай складає чинний вираз, тож ви не отримаєте жодного попередження.
 Символ в одинарних лапках повертає ціле, рівне числовому значенню знака в наборі символів машини. Це називається символьною константою (сталою), а насправді — просто інший спосіб написання невеличкого цілого. Таким чином, наприклад, 'A' — це символьна константа, значення якої дорівнює 65 в наборі символів ASCII, — внутрішньому представленні знака A. Звичайно 'A' надається перевага перед 65, оскільки значення першого очевидніше, і не залежить від певного набору знаків.
 Дозволяється також використання екранованих послідовностей, як символьні константи, тож'\n' означає значення символу нового рядка, яке дорівнює 10 в ASCII. Вам слід звернути увагу на те, що '\n' — це єдиний знак і у виразах є просто цілим числом, з іншого боку, "\n" — це ланцюжкова константа, яка, так сталося, що містить тільки один знак. Тему ланцюжків у порівнянні із символами розглянуто далі у Розділі 2.
 Вправа 1-8. Напишіть програму з підрахунку пробілів, табуляції та нових рядків.
 Вправа 1-9. Напишіть програму, яка би копіювала свій ввід до виводу, замінюючи кожний ланцюжок з одного або більше пробілів на єдиний пробіл.
 Вправа 1-10. Напишіть програму, яка би копіювала свій ввід до виводу, замінюючи кожну табуляцію на \t, кожний реверс на \b і кожну зворотню похилу на \\. Це зробить табуляцію і реверси видимими у недвозначний спосіб.