sstream [stringstream]
본문 바로가기
C, C++/Header

sstream [stringstream]

by 조훈이 2021. 8. 29.

#include <sstream>

stringstream


  설명 

  sstream 은 string stream 의 약자이다. string stream 는 주어진 어떠한 문자열에서 원하는 자료형으로 정보를 얻을 수 있다. 또한 여러가지 자료형을 가진 데이터들이 들어올 때 효과적으로 관리를 할 수 있다.

 

  stringstream 은 저장이 된 문자열에서 공백(' ')과 줄바꿈('\n') 을 기준으로 문자열을 구분하여 처리한다.

 

 1) 문자열에 대해서 띄어쓰기를 기준으로 원하는 자료형으로 분리를 할 수 있다. 

#include <iostream>
#include <sstream>

using namespace std;

int main() {
	string out;
	string strInput = "Hello world hello C++";
	stringstream s_stream;

	s_stream.str(strInput);

	while (s_stream >> out) cout << out << '\n';

	s_stream.str(""); // 초기화
}

[ 실행결과 ]

#include <iostream>
#include <sstream>

using namespace std;

int main() {
	int out;
	int sum = 0;
	string strInput = "111 222 333";
	stringstream s_stream;

	s_stream.str(strInput);

	while (s_stream >> out) {
		int cur = out;
		sum += cur;
		printf(" sum += %d\n", out);
	}
	printf(" sum is %d\n", sum);

	s_stream.str(""); // 초기화
}

[ 실행결과 ]

 

 2) 여러가지 자료형으로 들어온 데이터들을 임시 저장하고, 원하는 자료형으로 저장할 수 있다. 

#include <iostream>
#include <sstream>

using namespace std;

int main() {
	stringstream s_stream;

	int num1 = 123;
	double num2 = 342.4;

	s_stream << num1 << " " << num2; //공백을 넣어주어야 num1, num2를 분리하여 인식한다.

	string str1;
	string str2;

	s_stream >> str1 >> str2; // num1을 str1에, num2를 str2에 저장한다.

	cout << " str1 : " << str1 << "\n str2 : " << str2 << '\n';
}
728x90

'C, C++ > Header' 카테고리의 다른 글

lower_bound, upper_bound  (0) 2021.02.04

댓글