[C++] python split 함수 대신 쓸 C++ split 함수

윤경·2021년 6월 18일
0

C++

목록 보기
13/20

주 사용 언어는 C++이었는데 올해 학교에서 python을 사용할 일이 많아서 사용하다보니 string 방면에서 너무너무 편하다는 것을 느꼈다. 다시 C++로 코드를 짜려니 마땅한 함수가 없어 힘들다. 특히 split이 그립다.

그래서 C++에서 쓸 수 있는 split 함수를 알아보았다.

stringstream을 사용

stringstream

: 주어진 문자열에서 필요한 자료형에 맞는 정보를 빼낼 때 유용하게 사용
stringstream에서 공백과 줄바꿈을 제외하고 문자열에서 맞는 자료형의 정보를 빼냄.

  • #include 헤더 필요
  • stream.str(string str)은 현재 stream의 값을 문자열 str로 바꿈

stringstream 초기화

stream.str("");

getline

: 함수는 입력 스트림에서 문자들을 읽어서, 인자로 받은 문자열에 저장

#include <iostream>
#include <vector>
#include <sstream>  // stringstream
using namespace std;

vector<string> split(string input, char delimiter) {
  // delimiter: 구분문자

    vector<string> answer;
    stringstream ss(input);
    string temp;

    while(getline(ss, temp, delimiter)) {
        answer.push_back(temp);
    }

    return answer;
}

int main(){
    string str = "Ha yoon kyung";
    vector<string> result = split(str, ' ');
    for(int i=0; i<result.size(); i++){
        cout << result[i] << " ";
    }

    return 0;
}
profile
개발 바보 이사 중

0개의 댓글