-Layer7 백준 단어의 개수 C

2023. 4. 9. 15:17Layer7

 

공백을 활용하여 단어의 개수를 구하면 될 거 같다.

 

즉 I have an apple 이라는 영어문장을 입력했을때 공백은 총 4개 이므로 전체 문자열을 단어 하나씩 검사하여 공백이 나왔을때 Count 라는 변수를 루가하여 단어의 개수를 구하면 될 거 같다.

 

그렇게 작성한 코드는 아래와 같다.

 

#include <stdio.h>
#include <string.h>

int main() {
    char input[1000001];
    int count = 0;

    scanf("%[^\n]s", input);

    int len = strlen(input);
    if (input[0] != ' ') {
        count++;
    }

    for (int i = 1; i < len; i++) {
        if (input[i - 1] == ' ' && input[i] != ' ') {
            count++;
        }
    }

    printf("%d", count);

    return 0;
}

char input[1000001]은 입력으로 받을 문자열을 저장하는 변수입니다. int count = 0은 단어의 개수를 저장하는 변수로 초기값을 0으로 설정한다.

 

scanf 함수를 사용하여 공백을 포함한 문자열을 입력받아 input 변수에 저장한다. 이때에 %[^\ns]s 는 개행문자가 나올떄 까지 모든 문잘글 입력받는 형식 지정자로써의 역할을 담당한다.

 

이후 strlen 함수를 사용하여 문자열의 길이를 계산하여 len 변수에 저장한다.

 

if 문을 사용하여 input 문자열이 공백으로 시작하지 않는 경우와 공백으로 시작하는 경우에 따라 count 값에 변환을 준다

 

for 반복문을 이용하여 len 값 만큼 수행해 단어의 개수를 세는 역할을 담당한다.

 

 이후 printf 함수로 인해 count 변수에 저장된 값을 출렷하여 저장된 단어의 개수를 출력한다.

'Layer7' 카테고리의 다른 글

-Layer7 백준 과제 안 내신분..?  (0) 2023.04.09
Layer7 백준 별찍기 12 C  (0) 2023.04.09
-Layer7 백준 -코딩은 체육과목입니다.-  (0) 2023.04.09
-Layer7 별찍기 9  (0) 2023.04.09
-Layer7 백준 별찍기 8-  (0) 2023.04.09