본문 바로가기

알고리즘(アルゴリズム)/자주 까먹는 알고리즘(よく忘れるアルゴリズム)

C++ - 2개 이상의 Delimiter를 사용한 Parsing Template

strtok()

 

C언어 : #include <string.h>

C++ : #include <cstring>


string s;
char* num;
.....
void parsing_template() {

	num = strtok((char*)s.c_str(), "[,]");
	while (num != NULL) {

		v.emplace_back(num);
		num = strtok(NULL, "[,]");

	}
}

( 위 파싱 코드를 템플릿 마냥 외우자)

C++의 문자열 스타일(string)을 C언어 문자열 스타일(Char*)로 전환을 해 줘야 한다.

이때 사용되는 함수는 string :: c_str()이다. 

string cppStr = "CPPstring";
const char * cStr2 = cppStr.c_str();

string :: c_str()은 반환형이 const char* 인 것에 주의하자!!

c_str()을 이용하여 string -> char* 로 변환하기 위하여 (char*)s.c_str()과 같은 명시적 형변환을 해줘야 한다.