C++ STL
sstream
mintuchel
2023. 3. 7. 22:01
문자열을 한 줄에 받을때 쓰는 기법
stringstream은 일련의 문자를 포함하는 문자열 버퍼를 사용한다
stringstream은 여러가지 자료형이 한 줄로 들어올때
문자열을 파싱해야할때 매우 유용한 라이브러리이다
문자열에서 내가 원하는 자료형을 추출해야할때 쓰면 된다
이 stringstream은 공백과 '\n'문자를 제외하고 문자열에 맞는 자료형을 빼낸다
[ 추출할 type설정하기 ]
data가 어떤 타입인지에 따라 추출되는게 달라진다
int data로 선언했으면 문자열에서 숫자만 파싱되고 ( 0-9 )
char data로 선언했으면 문자열에서 문자만 파싱되고 ( 숫자도 파싱됨 문자인 숫자로 취급되서 )
string data로 선언했으면 문자열에서 문자열이 파싱된다! ( 이땐 공백으로 구분되어 파싱됨 )
while(ss>>data) { //code }
1. 문자 추출
#include <string>
#include <sstream>
using namespace std;
int main() {
string s = "koublibaly";
// stringstream 생성
stringstream ss;
// stringstream load
// stream에 문자열 s 집어넣기
ss.str(s);
char ch;
while(ss >> ch) { cout << ch << endl; }
// stream 초기화
ss.str("");
return 0;
}
2. 문자열 추출
#include <string>
#include <sstream>
using namespace std;
int main() {
string s = "tuchel klopp guardiola wenger";
// stringstream 생성
stringstream ss;
// 현재 스트림 값을 문자열 str로 바꾸기 (stream loading)
ss.str(s);
string temp;
while (ss >> temp) {cout << temp << endl;}
// 스트림 초기화
ss.str("");
return 0;
}
문자열을 공백과 \n 으로 구분하여 추출한다