인프런 커뮤니티 질문&답변

정현철님의 프로필 이미지
정현철

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

[필수개념] split() 함수

split 함수 문의드립니다.

작성

·

366

0

강의 잘 수강하였습니다.
split 함수 정의해주신거 관련해서 문의가 있어서요.
만약 delimeter 가 input 에 포함되어 있지 않은 경우에는 input 전체가 하나 들어간 vector가 들어가야 할거 같은데 마지막 예제에서는 그런 처리가 안된거 같아서요.
최초 token 정의 할때, input을 세팅해놓으면 되지않을까 싶은데 확인 부탁드립니다.

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 현철님 ㅎㅎ

delimeter가 포함되어있지 않은 경우

해당 문자열이 바로 나오게 됩니다.

#include <bits/stdc++.h>
using namespace std;  
 
vector<string> split(string input, string delimiter) {
    vector<string> ret;  
    long long pos = 0;
    string token = "";
    while ((pos = input.find(delimiter)) != string::npos) {
        token = input.substr(0, pos);  
        ret.push_back(token);  
        input.erase(0, pos + delimiter.length());
    }
    ret.push_back(input);
    return ret; 
} 
  
int main(){
    string s = "안녕하세요 큰돌이는 킹갓제너럴 천재입니다 정말이에요!", d = " ss"; 
    vector<string> a = split(s, d); 
    for(string b : a) cout << b << "\n"; 
} 

이거를 한번 돌려보시겠어요?

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

정현철님의 프로필 이미지
정현철

작성한 질문수

질문하기