c++에는 split 메서드가 없다
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
vector<string> split(const string& input, string delimiter) {
vector<string> result;
auto start = 0;
auto end = input.find(delimiter);
while (end != string::npos) {
result.push_back(input.substr(start, end - start));
start = end + delimiter.size();
end = input.find(delimiter, start);
}
result.push_back(input.substr(start));
return result;
}
int main()
{
string s = "apple,banana,temp";
auto tmp = split(s, ",");
for(string x : tmp){
cout << x << " ";
}
}
자를 문자열과 split 기준이 될 문자열을 인자로 받는 메서드를 작성하고
결과를 기록할 문자열을 만든다
일단 전체 문자열에서 구분자의 포지션을 찾고
결과에 시작, 구분자 - 시작 범위 문자열을 넣어준다
시작점을 찾은 문자열 시작 위치 + 구분자 크기로 해주고
계속 찾으면서 나온 결과를 추가해서 반환한다
'C++ 알고리즘 > 풀다가 알게된 것' 카테고리의 다른 글
소수점 n 자리에서 반올림, 올림 , 내림 (D2 1984. 중간 평균값 구하기 ) (0) | 2024.10.12 |
---|---|
우선순위큐 (1) | 2024.10.01 |
조합 구하기 (0) | 2024.08.27 |
순열 구하기 - next_permutation, 재귀 (0) | 2024.08.27 |
c++ 코딩테스트 풀면서 알게 된 것들 기록 (0) | 2024.07.31 |