저는 C++과 JS로 코딩테스트를 준비하는 편이라 문자열 관련된 알고리즘 문제들을 종종 접하곤 합니다.
하지만 C++은 다른 언어에 비해 문자열 관련된 문제에서 굉장히 불리하다고 생각합니다.
C++은 기본적으로 지원하는 문자열 관련 함수가 굉장히 약해요. 하지만 그렇다고 아예 안 할 수는 없으니 그 중에서도 가장 자주 사용되는 문자열 분리에 관해서 정리해보고자 합니다.
C++ 에서 strtok
이라는 함수가 있습니다.
특정 문자를 기준으로 문자열을 분리해주는 Tokenizer 함수입니다.
개인적으로는 자주 사용하지 않아요. 😢
사용 예시
char str[] = "Hello Real World!"; // 구분할 문자열
char *ptr = strtok(str, " "); // 첫번째 strtok 사용.
while (ptr != NULL) {
printf("%s\n", ptr); // 자른 문자 출력
ptr = strtok(NULL, " "); // 자른 문자 다음부터 구분자 또 찾기
}
사용 예시
string temp = "Hello Real World!";
stringstream str(temp);
string buffer; // 임시 저장될 공간
while (getline(ss, buffer, ' ')) {
cout << buffer << endl;
}