strtok을 사용하다가 1번만 자른 뒤 나머지가 필요한 경우가 생겼다.
그래서 뒤적이다 보니 strsep라는 또다른 분리 함수를 찾았다. 하지만 이걸로도 해결은 불가능 했다.
원했던 만큼만 분리 후 나머지를 취할 수는 있었지만 strtok과는 다르게 구분자로 된 문자열을 통째로 분리하지 못했다. 이전에 포스팅 했던 strtok 샘플과 비교해보면 눈에 띄는 차이를 알 수 있다.
샘플은 이전 strtok 때 썼던 것을 재사용했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <STRING.H> 
int main( )
{
    char* token = NULL;
    char* str = NULL;
    char str1[] = " ! This is\tStrtok,Test Program!!!! end\n";
    char  str2[] = " ,\t\n!";
 
    str = strdup( str1 );
    token = strsep( &str, str2 );
    while( token != NULL )
    {
        printf( "token = %s", token );
        putchar( '\n' );
        token = strsep( &str, str2 );
    }
 
    printf("검색이 완료된 원본 문자열 : %s\n",str1);
    str = strdup( str1 );
    token = strsep( &str, str2 );
    printf( "token = %s", token );
    printf( "seped = %s", str );
 
   
    return 0;
}