[C++] 문자열 자르기, 문자열 추출하기

Namgon·2021년 4월 5일
1

목록 보기
2/3

C++에서 문자열 자르기(추출하기)

C++을 사용하다 보면 자바나 파이썬에는 기본적으로 있는 split함수가 없어 불편할 때가 많다.
매번 찾으면서 하기 귀찮기도 하고, 외워야 겠다는 생각에 글을 남기고자 한다.

istringstream과 getline 함수 이용

#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;
}

string의 find함수 이용

#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
}
profile
make more services :)

0개의 댓글