2020. 4. 26.

[자료구조] 인프런 8. 전화번호부 v3.0(2) 강의 정리


strtok 이용한 문자열 짜르기(tokenizing)

#include
#include

int main(void) {

char str[] = "now # is the time # to start preparing ### for the exam#";
// 테스트를 위해 만든 문자열
// 구분자가 2개 나와서 구분자사이의 0의 길이를 가진다면
// 구분자가 연속해서 나올경우 그것을 통째로 인식하여 한개로 인식한다        
char delim[] = "#";
// #로 구분자로 이용함
char* token;

token = strtok(str, delim);
// 첫번째 호출

while (token != NULL) {
printf("next token is: %s:%d\n", token, strlen(token));
// 첫번째 토큰을 출력하고 뒤에 : 를 하고
// 스트린랭스를 출력한다
token = strtok(NULL, delim);
// 이어진 호출들
}
return 0;
}



*how strtok works?




strtok 원본 문자열을 변화시킨다 ('\0' 삽입한다.)
  • 따라서 만약 원본 문자열이 보존되어야 한다면 복사한 strtok 해야한다.

strtok 새로운 배열을 생성하지 않는다.
  • strdup와는 다르다.

댓글 없음:

댓글 쓰기