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 계산도 그렇고 좀 복잡해서 웬만하면 첫 번째 방법을 사용하려고 한다 !