알고리즘

[C++] 백준 1157번 단어 공부

J3SUNG 2019. 8. 4. 15:28
728x90

단어의 개수가 몇개인지 출력하는 문제입니다.

cin으로 문자를 입력받게 되면 공백부터는 잘리게 됩니다.
getline(cin, s)를 하여 줄단위로 문자를 받았습니다.

문자가 나오면 count++해주고 chk를 1로 바꾸어주었습니다.
chk가 1이되면 count는 더 이상 증가하지 않고
공백이 나오면 chk를 0으로 바꾸어주었습니다.

 

#include <iostream>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;

int main(int argc, char *argv[])
{	
	int chk = 0;
	int count = 0;
	string s;

	getline(cin, s);

	for (int i = 0; i < s.length(); ++i) {
		if ((int)s[i] == 32) {
			chk = 0;
		}
		if ((int)s[i] != 32 && chk == 0) {
			++count;
			chk = 1; 
		}
	}

	cout << count << endl;

	return 0;
}