ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++ STL] sstream
    C++ 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