C++을 사용하다 보면 자바나 파이썬에는 기본적으로 있는 split함수가 없어 불편할 때가 많다.
매번 찾으면서 하기 귀찮기도 하고, 외워야 겠다는 생각에 글을 남기고자 한다.
#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int main() {
string str = "Hello,World";
istringstream ss(str);
string str_buf;
while(getline(ss,str_buf,',')) // 구분자: ','
{
cout << str_buf << endl; // 문자열 split
}
return 0;
}
#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int main() {
string str = "Hello,World";
size_t prev = 0, cur;
cur = str.find(','); // 구분자: ','
while(cur != string:npos) // find는 원하는 문자열을 찾지 못하면 npos를 반환한다.
{
string sub_str = str.substr(prev, cur - prev); // 문자열 split
cout << sub_str << endl;
prev = cur + 1;
cur = str.find(',', prev);
}
cout << str.substr(prev, cur - prev) << endl; // 마지막 split
}