// C++ 에서는 split 메서드가 따로 없어서 이와같이 구현해야 한다.
#include<bits/stdc++.h>
using namespace std;
vector<string> split(string s, string d) { // 입력값, 구분자
vector<string> res;
long long pos = 0;
string token = "";
while ((pos = s.find(d)) != string::npos) {
token = s.substr(0, pos);
res.push_back(token);
s.erase(0, pos + d.size());
}
res.push_back(s);
return res;
}
int main() {
string s = "안녕하세요 숭황이는 멍청이 해삼이에요!";
string d = " ";
vector<string> v = split(s, d);
for (auto i : v) {
cout << i << "\n";
}
}
#include <iostream>
#include <string>
#include <sstream> // 헤더 필수
using namespace std;
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(0);
string s1 = "apple oragne banna kiwi";
string s2 = "12:00,12:14,HELLO,CDEFGAB";
string start, end, name, sheet, token;
// stringstream : 구분자가 공백
for(stringstream ss(s1); (ss >> token); ) {
cout<<token<<"\n";
}
// stringstream + getline : 구분자를 커스텀할 수 있음
stringstream ss(s2);
getline(ss, start, ',');
getline(ss, end, ',');
getline(ss, name, ',');
getline(ss, sheet, ',');
cout<<start<<"\n";
cout<<end<<"\n";
cout<<name<<"\n";
cout<<sheet<<"\n";
stringstream ss(s2);
string token;
// ,을 기준으로 split
while (getline(ss, token, ',')) {
if(token != "") cout << token << "\n";
}
}