русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Відлік рядків


Дата додавання: 2014-11-28; переглядів: 810.


Наступна програма лічить введені рядки. Як ми згадали вище, стандартна бібліотека забезпечує тим, щоб потік ввідного тексту з'являвся як послідовність рядків, кожен з яких закінчується символом нового рядка. Тому відлік рядків — це просто підрахунок символів нового рядка:

#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 і кожну зворотню похилу на \\. Це зробить табуляцію і реверси видимими у недвозначний спосіб.


<== попередня лекція | наступна лекція ==>
Відлік символів | Відлік слів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн