영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
빈칸 기준으로 끊어세면 문장 내 단어의 갯수를 셀 수 있을거라 생각했다.
그러기 위해 getline을 통해 문장을 받아내고 stringstream으로 빈칸마다 끊어내서 count했다.
결과 코드는 다음과 같다.
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(void)
{
string str, token;
int count = 0;
getline(cin, str); // input
stringstream ss(str);
while (ss >> token) // slice with space
{
count++;
}
cout << count << endl;
return 0;
}