#include<string.h>


strtok(*string,"구분자");


strtok는 인자로 다음과 같이 어떤 '문자열' 과 '구분자' 를 받아서 그 구분자를 기준으로 토큰을 리턴하는 함수이다.


ex)

#include<stdio.h>

#include<string.h>


int main(int argc,char *argv[])

{

        char *pointer=NULL;


        pointer = strtok(argv[1],"~");

        printf("%s\n",pointer);

        pointer = strtok(NULL,"/");

        printf("%s\n",pointer);


        return 0;

}





단, strtok함수를 쓸때는 주의할 점이 있는데, 처음에 strtok함수를 사용하고 나면, strtok함수가 구분자를 만나면 구분자를 NULL바꿔버리고 그 자리의 주소를 기억하고 있는다. 따라서 다음번에 다시 strtok를 사용할 떄는 argv[1]이 아니고, NULL을 해야 처음에 잘라낸 부분 뒤부터 구분자를  찾는 것이다. 그렇지 않을 경우에는 계속 처음부터 검색을 하게 됨.


#include<stdio.h>

#include<string.h>


int main(int argc,char *argv[])

{

        char *pointer=NULL;


        pointer = strtok(argv[1],"~");

        printf("%s\n",pointer);

        printf("%s\n",argv[1]);

        pointer = strtok(NULL,"/");

        printf("%s\n",pointer);


        return 0;

}


strtok함수를 사용하고 난후에 다시 argv[1]을 출력하면 ~가 NULL로 바뀌어 hi까지만 출력이 된다.


'Programming > C' 카테고리의 다른 글

열거형 enum  (0) 2012.07.09
sscanf , sprintf  (0) 2012.07.06
문자열 붙이기 Strcat()  (0) 2012.07.04
Extern 함수  (0) 2012.05.21
함수 포인터  (0) 2012.05.07

+ Recent posts