Тема: Рахунок слів. Мова С.(Kernigan&Ritchie)
Доброго дня, шановні.
Нещодавно, за порадою знайомого, почав вивчати мову програмування С за допомогою відеоуроків на Youtube та придбаної книги Kernigan & Ritchie.
Трошки переглянув цей форум і зрозумів, що шукати тут ментора безглуздо, тож просто буду задавати свої питання.
Тож, питання перше. Є программа, яка рахує введені лінії, слова та символи:
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int с, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((с = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf(“%d %d %d\n”, nl, nw, nc);
}
Отож саме питання: я не зовсім розумію, що конкретно виконує змінна state. Вона просто приймає значення 0 і 1 в залежності від обставин? Просто розділяє випадки?
Також я не дуже розумію вираз "else if (state == OUT)". В чому різниця між "state = OUT" і "state == OUT"?