[출처 : http://www.jamsun2.com/zbxe/?mid=study&document_srl=94602&page=6&sort_index=readed_count&order_type=desc]
char* strtok(char* src, const char* delim)
{
// src, delim 이 NULL 인지, delim 이 "" 인지 체크하는 코드는 생략
char* tok;
static char* next; // 분석을 시작할 위치
if (src != NULL)
next = src;
tok = next;
// boundary condition check
if (*next == '\0')
return NULL;
// 분석 시작
for (; *next != '\0'; ++next)
{
if (*next in delim) // pseudo code
{
*next = '\0';
++next;
break;
}
}
return tok;
}
{
// src, delim 이 NULL 인지, delim 이 "" 인지 체크하는 코드는 생략
char* tok;
static char* next; // 분석을 시작할 위치
if (src != NULL)
next = src;
tok = next;
// boundary condition check
if (*next == '\0')
return NULL;
// 분석 시작
for (; *next != '\0'; ++next)
{
if (*next in delim) // pseudo code
{
*next = '\0';
++next;
break;
}
}
return tok;
}
char* strtok(char* src, const char* delim, char** start)
{
// src, delim 이 NULL 인지, delim 이 "" 인지 체크하는 코드는 생략
char* tok;
char* next; // 분석을 시작할 위치. static 을 없애고 start 라는 입력
// 으로 초기화함
if (src != NULL)
next = src;
else
next = *start;
// boundary condition check
if (*next == '\0')
return NULL;
// 분석 시작
tok = next;
for (; *next != '\0'; ++next)
{
if (*next in delim) // pseudo code
{
*next = '\0';
++next;
break;
}
}
*start = next;
return tok;
}
{
// src, delim 이 NULL 인지, delim 이 "" 인지 체크하는 코드는 생략
char* tok;
char* next; // 분석을 시작할 위치. static 을 없애고 start 라는 입력
// 으로 초기화함
if (src != NULL)
next = src;
else
next = *start;
// boundary condition check
if (*next == '\0')
return NULL;
// 분석 시작
tok = next;
for (; *next != '\0'; ++next)
{
if (*next in delim) // pseudo code
{
*next = '\0';
++next;
break;
}
}
*start = next;
return tok;
}