[C++] 특정 문자를 기준으로 문자열 분리시키기

뚱이·2023년 9월 1일
0

특정 문자를 기준으로 문자열 분리시키기

C++에서 문자열을 특정 기준으로 구분하는 방법은 여러 가지지만, 가장 쉬운 방법은
<sstream> 헤더의 getline() 함수를 이용하는 것이다.

문장 전체를 입력 받을 때 쓰는 함수도 getline() 인데, 두 함수는 일단 인자가 다르다 !

[ 문장 전체를 입력 받을 때 쓰는 getline() ]

string s;
getline(cin, s);

[ 특정 문자를 기준으로 문자열을 분리시킬 때 쓰는 getline() ]

#include <string>
#include <vector>
#include <sstream>

istringstream ss (info);
vector<string> v;
string tmp;

while (getline(ss, tmp, ' ')) {
	v.push_back(tmp);
}

이 때 tmp 변수는 분리한 문자열을 vector에 삽입할 때 사용하는 임시 문자열이다.
그리고 분리한 문자열들을 저장하기 위해 vector v 를 선언했다.



[참고] 다른 방법

이 방법 외에도 <string> 헤더의 find() 함수를 사용하는 방법도 있다.

구분의 기준이 되는 문자를 find() 함수의 인자로 사용해 그 위치를 찾고,
그 위치와 substr() 함수를 이용해 문자열을 구분하면 된다.

그런데 이 방법은 index 계산도 그렇고 좀 복잡해서 웬만하면 첫 번째 방법을 사용하려고 한다 !

0개의 댓글