본문 바로가기
프로그래밍/C programming

C언어 키보드로 입력된 문자열의 문자 수, 단어 수, 줄 수를 계산 getchar() 함수

by 졸린이 2020. 6. 8.
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#define YES 1
#define NO 0
main() {
    //입력된 문자 수, 단어 수, 줄 수를 계산하는 프로그램
    char c, inword;
    int nc, nw, nl; //문자, 단어, 줄
    inword = NO;
    nl = nw = nc = 0;
 
    while ((c = getchar()) != EOF) {
        nc++//문자 수 세기
        if (c == '\n'//줄넘김이 있으면
            nl++//줄 수 세기
        if (c == ' ' || c == '\n' || c == '\t'//공백을 다시 만날때까지 inword YES
            inword = NO; 
        else if (inword == NO) { //공백만나기 전까지 단어를 세지 않게
            inword = YES; //inword가 NO면 단어 하나를 세고 플래그 1로 변환
            nw++
        }
    }
    printf("\n");
    printf("line = %d\n", nl);
    printf("word = %d\n", nw);
    printf("character = %d\n", nc);
}
cs

 

11행 EOF (ctrl + Z)를 만나기 전까지 계속 입력하게 반복

12행 입력될 떄 마다 하나하나 count

13~14행 enter가 입력되면 줄 수 를 count

inword가 처음 NO로 초기화 되어있으므로

17~19행에서 inword를 YES로 바꾸고 단어수를 올린다

15~16행 키보드에서 공백문자가 입력되면 (스페이스 (' '), 텝 ('\t'), 엔터 ('\n')) inword를 NO로 바꾸고 

다음 문자입력되면 단어하나를 추가

 

C부터 다시 공부하려니까 여간 너무 귀찮다 정말ㅠ

반응형

댓글