1.5.4 단어 갯수 세기
실습 전 이론
이번에는 단어 갯수 세기 프로그램이다.
하나의 단어를 세는 기준은 빈칸, tab, 혹은 개행이 나오면 한 단어가 끝났다고 생각한다.
이번 프로그램에선 || 와 상수 지정을 사용하여 행, 단어, 문자의 갯수를 센다.
실습
#include <stdio.h>
#define IN 1
#define OUT 0
int main(){
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while((c = 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);
}
변수 nl, nw, nc 는 각각 line, word, count 라고 보면된다.
state라는 상태를 표시하는 변수를 통해 단어를 끝마치는 문자가 식별될 경우 state를 out 으로 만들고 단어 갯수(nw)를 1 올린다음,
다시 state를 IN으로 바꾼다.
이런식으로 문장을 입력하고 EOF를 입력하면 개행, 단어 수 , 문자갯수를 출력해준다.
if 문에서 || 는 or 연산으로 사용되며 if(a || b || c) 일경우 a,b,c 중 하나라도 참일 경우 해당 if 문의 몸체 부분 코드가 실행된다.
같은 원리로 && 는 and 연산자로써 사용된다.
실습 후 이론

No comments to display
No comments to display