[C++] split 함수

다곰·2022년 10월 1일
0
  1. istringstreamgetline 함수 사용

istringstream 이란?

✏️ 공백 있는 문자열 분할에 주로 사용
✏️ 헤더파일 #include <sstream>
✏️ str() ➡️ 문자열 확인 가능

string str="java c c++ python";
istringstream ss(str);
ss.str()

✏️ ss>>str1; 을 하면 str1 에 처음으로 잘린 'java'가 들어감

string str="java c c++ python";
istringstream ss(str);
ss.str();

✏️ 분할된 두 개의 문자열을 저장

string str="java c c++ python";
istringstream ss(str);
ss>>str1>>str2;

➡️ str1 에는 'java'가 들어가고 str2 에는 'c'가 들어간다.

✏️ 분할 연산자를 기준으로 자른 모든 문자열 출력 예시

string str="java c c++ python";
istringstream ss(str);
string str_copy;
int cnt=0;
vector<string> x;

while(ss>>str_copy){
        x.push_back(str_copy);
        cnt++;
 }

getline 이란?

istream & getline(istream& ls, string& str, delim)
ls 입력스트림 object ➡️ 분할할 문자열 객체
str 입력받은 문자열을 저장할 string
delim 문자열 구분자 ➡️ 이 문자에 도달하면 추출이 중단

🔗 [C++] getline

구분자가 있는 경우 split으로 잘라 vector 에 넣기

#include<iostream>
#include<string>
#include<vector>
#include<sstream>

using namespace std;

int main()
{
    string str="java c c++ python";
    istringstream ss(str);
    string stringBuffer;
    vector<string> x;
    x.clear();

    while (getline(ss, stringBuffer, ' ')){
        x.push_back(stringBuffer);
        cout<<stringBuffer<<" ";
    }
    
    return 0;
}
profile
다교미의 불꽃 에러 정복기

0개의 댓글