istringstream
과getline
함수 사용
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
문자열 구분자 ➡️ 이 문자에 도달하면 추출이 중단
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;
}