#include <string.h> char *strtok(char *s, const char *delim); char *strtok_r(char *s, const char *delim, char **ptrptr);
strtok() 함수는 문자열 s를 토큰으로 파싱하기 위해 사용된다. strtok()에 대한 처음 호출은 처음 인자로써 s를 가져야만 한다. 연속적인 호출은 처음 인자를 NULL로 설정해야 한다. 각 호출은 다음 토큰에 대한 포인터를 반환하거나 더이상 토큰이 발견되지 않는다면 NULL을 반환한다.
토큰이 구분자로 끝난다면, 이 구분자는 \0로 겹쳐 쓰여지며 다음 문자에 대한 포인터가 strtok()에 대한 다음 호출을 위해 저장된다. 구분 문자열 delim는 각 호출시 다를수 있다.
strtok_r() 함수는 strtok() 와 동일하게 작동한다. 그러나 정적 버퍼를 사용하는 대신에 이 함수는 char * 포인터로 할당된 유저에 대한 포인터를 사용한다. 이 포인터, ptrptr 파라미터는 같은 문자열을 파싱하는 동안 같아야만 한다.
구분자의 원본은 잃게 된다.
이 함수는 상수 문자열에서는 사용해서는 안된다.
strtok () 함수는 파싱하는 동안 정적 버퍼를 사용한다. 그래서 thread safe가 아니다. 만일 이것이 문제라면 strtok_r () 를 사용해라.