특정 문자 기준 문자열 자르기 (문자열 토큰화 하기) : C++
백준에서는 구현이나 수학, 자료구조 관련 문제를 많이 풀었는데 최근에 프로그래머스를 풀다가 문자열에 대해 다룰 일이 많아져서 매번 찾아봐도 다양한 방법이 나오고 간단한 걸 찾기 힘들어서 내 블로그 보고 풀려고 작성해 놓는 방법이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main(void){
string s;
cin >> s;
vector<string> words;
stringstream sstream(s);
string token;
while(getline(sstream, token, '.')){
words.push_back(token);
}
for(int i = 0; i < words.size(); i++){
cout << words[i] << "\n";
}
}
입출력 결과
사실 C++의 경우 string이 있어 일반 C에서 char* 쓰는 것보단 괜찮지만 어쨌든 자바스크립트나 파이썬 같은 언어보다는 문자열을 다루기가 까다로운 것도 사실인 것 같다. C++ 잘하는 사람들한테도 문자열 어떡해? 하고 물으면 그냥 파이썬 써 라고 한다니까… 근데 코테에서 C++ 쓰다가 냅다 파이썬을 쓰면 공격 당하기 쉽상이다. 그냥 C++로도 할줄 아는 사람이 되자!
댓글남기기