- 
          
          [C++ STL] sstreamC++ STL 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 으로 구분하여 추출한다
'C++ STL' 카테고리의 다른 글
[C++ STL] algorithm.h (0) 2023.03.31 [C++ STL] unordered_map (2) 2023.03.31 [C++ STL] string (0) 2023.03.07 [C++ STL] unordered_set/multiset (0) 2023.02.24 [C++ STL] priority_queue (0) 2023.02.23