본문 바로가기
개발 노트/백준, 프로그래머스 풀이

stringstream 문자열 입력 버퍼, 자료형이 섞인 string 을 다룰때 사용

by tokkiC 2022. 6. 22.

strigstream 은 여러 자료형이 섞여있는 string 을 입력 받을 때에 필요한 자료형에 맞는 데이터를 꺼낼때 유용하다

 

다음은 stringstream 을 사용해서 입력된 string 에서 공백 단위로 잘라 벡터에 푸쉬, 인덱스 추가 하는 문제이다

' : ' 기호를 공백으로 바꾸어 stringstream 버퍼에 저장된 입력 데이터 가공하고 공백을 통해 분리해서

분리된 입력 요소를 num으로 받아 로 벡터에 push_back하여 저장하고, 인덱스로 꺼내 쓸 수 있다

#include <bits/stdc++.h>
using namespace std;

int main(){

	vector<long long> time;
	string clock="2022:06:22 15:15:30";
	for(int i=0; i<clock.length(); i++){
		if(clock[i]==':'){
			clock[i]=' ';
		}
	}
	
	long long num = 0;
	stringstream ss;
	ss.str(clock);
	while(ss>>num){
		time.push_back(num);
	}
	
	long long sec = 0;
	sec += time[0]*365*24*60*60;
	sec += time[1]*30*24*60*60;
	sec += time[2]*24*60*60;
	sec += time[3]*60*60;
	sec += time[4]*60;
	sec += time[5];
	
	cout<<sec<<"\n";

	return 0;
};

편의를 위해 윤년 없음, 월당 30일 로 계산하였다. 중요한건 stringstream 의 사용방법을 배우기 위해서였으니까!

댓글