728x90
카카오 코딩테스트 문제를 풀다보면 문자열을 분리하여 푸는 문제가 많다.
c++은 따로 문자열 분리하는 STL이 존재하지 않아 split을 구현해야 한다. 그래서 문자열 처리할 때마다 검색해서 문제를 풀었는데 검색하는 것이
귀찮아서
내가 검색한 내용을 정리하기로 했다.
istringstream
과 getline()
함수 사용
istringstream
을 사용하려면 sstream
헤더 파일을 선언해야 한다.
헤더 파일을 일일이 선언할 필요없는 bits/stdc++.h를 애용하자!
반복문 이용
#include <string>
#include <iostream>
#include <sstream>
int main() {
string as = "this,is,string";
istringstream ss(as);
string stringBuffer;
while (getline(ss, stringBuffer, ',')) {
cout << stringBuffer << " ";
}
return 0;
}
// output : this is string
getline()
함수에 첫 번째 매개변수는 입력 스트림, 두 번째는 추출한 문자열을 저장할 변수, 세 번째는 구분자를 넣어준다.
출력스트림 이용
#include <string>
#include <iostream>
#include <sstream>
int main() {
string as = "this is string";
istringstream ss(as);
string stringBuffer[3];
ss >> stringBuffer[0] >> stringBuffer[1] >> stringBuffer[2];
for (string s : stringBuffer) {
cout << s << "\n";
}
return 0;
}
// output : this
// is
// string
출력스트림을 이용해 추출한 문자열 변수를 위와 같이 사용한다.
⚠️ 주의
위 방법은 구분자가 공백일 때만 사용가능하다.
728x90
'Algorithm > Note' 카테고리의 다른 글
[IntelliJ] 인텔리제이 단축키 (mac 기준) (0) | 2022.04.12 |
---|---|
[Java] 코테 준비 - 클래스 객체 배열 정렬하기 - Comparable<E> (0) | 2022.04.10 |
[Java] 코테 준비 - binary to decimal과 decimal to binary (0) | 2022.02.20 |
[Java] Map for-each문 사용 방법 (0) | 2022.02.08 |
Xcode bits/stdc++.h 사용하기 (0) | 2022.02.08 |