본문 바로가기

백준 문제 풀이/c언어

백준 1152 C언어 문제 풀이 - 단어의 개수

728x90

이 문제는 단어의 개수를 세는 문제입니다. 
우선, 문장을 입력받기 위해서는 scanf 함수를 사용합니다. 그리고 입력받은 문자열을 공백으로 구분하여 단어의 개수를 셉니다. 이때, 단어를 구분하는 공백이 여러 개인 경우를 처리하기 위해서, 공백이 아닌 문자가 나올 때마다 word_count 변수를 증가시켜 줍니다.

문제를 풀면 아래 코드가 나옵니다.

#include <stdio.h>

int main() {
    char c;
    int word_count = 0;
    int is_word = 0;

    while (scanf("%c", &c) == 1) {
        if (c == ' ' || c == '\n') {
            is_word = 0;
        } else if (!is_word) {
            is_word = 1;
            word_count++;
        }
    }

    printf("%d", word_count);

    return 0;
}

위 코드에서 scanf 함수는 문자 하나를 입력받아 변수 c에 저장합니다. c가 공백이나 개행 문자인 경우에는 is_word 변수를 0으로 설정하여 단어가 아님을 표시합니다. 그리고 c가 알파벳이거나 숫자인 경우, is_word 변수가 0인 경우에는 word_count를 증가시키고 is_word를 1로 설정하여 새로운 단어가 시작되었음을 표시합니다.

마지막으로, word_count 변수를 출력하여 단어의 개수를 출력합니다.

이렇게 C 언어로 작성한 코드는 입력받은 문자열을 공백으로 구분하여 단어의 개수를 셀 수 있습니다.

728x90