728x90
[백준알고리즘] 1152번: 단어의 개수 -C++
심오한 c++의 세계..
string type을 parsing 해주기 위해서 <sstream> 헤더에 있는 stringstream 을 사용했다.
추가로 istringstream, ostringstream이 있는데 각각 입력 형식과 출력 형식을 정해주는 용도 정도로 사용하는 것 같다.
stringstream의 경우에는 stream 타입이기 때문에 <string>헤더에 정의된 getline 함수의 첫 번째 인자로 들어갈 수 있다.
getline 함수의 경우에는 각 인자가 (입력받을 스트림 / 입력을 저장할 string 객체 / 구별자)를 의미한다. 세 번째 인자가 없는 경우에는 자동으로 '\n'로 인식해서 한 줄을 입력받도록 사용한다.
예제 입력 2와 같이 연속으로 공백이 들어오는 경우를 제외하기 위해서 파싱한 문자열의 길이가 0보다 클 때만 카운트를 세 주었다.
#include <iostream>
#include <string>
#include <sstream>
int main(void)
{
std::string str;
std::getline(std::cin, str);
std::stringstream ss(str);
std::string temp;
int answer = 0;
while (std::getline(ss, temp, ' '))
if (temp.length() > 0)
answer++;
std::cout << answer;
}
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 2941번: 크로아티아 알파벳 -C++ (0) | 2021.01.16 |
---|---|
[백준알고리즘] 2908번: 상수 -C++ (0) | 2021.01.16 |
[백준알고리즘] 1157번: 단어 공부 -C++ (0) | 2021.01.12 |
[백준알고리즘] 2675번: 문자열 반복 -C++ (0) | 2021.01.11 |
[백준알고리즘] 10809번: 알파벳 찾기 -C++ (0) | 2021.01.11 |