bitCode

1115

문장 입력 및 출력

바른코드 0 제출 0 성공률 0.0%

출처 · cberi:1530

문제정보

1s 128MB

문제

문장이 주어졌을 때, 이 문장이 몇 개의 단어로 구성되었는지 구하시오.

입력형식

첫째 줄에 문장 s가 입력된다. 문장은 항상 ‘.’으로 끝난다.
문장의 길이는 최대 100이다.

출력형식

문장 s를 이루고 있는 단어의 개수를 출력하시오.

힌트

C++ 표준입력방법인 cin은 공백 문자 또는 개행 문자를 입력의 끝으로 간주한다.
따라서, 공백 문자를 포함하여 한 줄 전체를 입력받으려면 cin으로는 불가능하다.
getline()를 사용하면 cin과는 다르게 공백 문자를 입력받을 수 있고, 개행 문자를 입력하기 전까지 공백을 포함한 한 줄 전체를 입력받을 수 있다.
 
getline(cin, s); // string 변수 s에 한줄 전체 입력하기
이 때, getline()는 버퍼에 남아있는 공백문자와 개행 문자까지도 입력받는다는 점을 유의해야 한다.
따라서, 다음과 같이 cin으로 입력받은 후, getline()으로 입력받을 때는 getline()으로 입력받기 전, cin.ignore()를 실행해야 한다.
 
cin >> a;
getline(cin, b); // b에는 개행 문자 혹은 공백문자가 저장됨
=> cin.ignore(); 를 사용하여 버퍼를 비워야 함.
 
이 문제에서는 단어가 공백으로 구분되어 있다는 점을 이용하여 단어의 개수를 구한다.
getline(cin, s);
for(int i=0; i<s.size(); i++){
    if(s[i] == ' ' || s[i] =='.')
        cnt++;
}
 

예시 1

입력예시

hello world.

출력예시

2

예시 2

입력예시

hello.

출력예시

1