C language strtok(), 설정한 구분자로 문자열 자르기 2019/07/19 20:14 by The 2nd

strtok()
; 구분자를 정하고 구분자 기준으로 문자열 자르기
; strtok(문자열주소,구분자);
; strtok은 원본 문자열을 변형시킴 > NULL을 삽입(\0)  --> ** 원본 보존을 하려면 복사 후에 함수를 적용해야함

 
* 예제 1
; #을 구분자로 한 문자열 분해

#include <stdio.h>
#include <string.h>

int main(void) {
// char str[]="now # is the time # to start preparing ### for the exam#";
char str[]="now#is the time#to start preparing###for the exam#";
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);     // strtok 함수의 특이한, 논란이 많은, 그래서 꺼리는 부분
}
return 0;
}


------------------------------------------------------------
next token is: now(3)
next token is: is the time(11)
next token is: to start preparing(18)
next token is: for the exam(12)




* 예제 2
; 공백을 구분자로 한 문자열 분해

#include <stdio.h>
#include <string.h>

int main(void) {
    char str[]="  now is the time  to start preparing  for the exam    ";
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;
}

-------------------------------------------------------
next token is: now(3)
next token is: is(2)
next token is: the(3)
next token is: time(4)
next token is: to(2)
next token is: start(5)
next token is: preparing(9)
next token is: for(3)
next token is: the(3)
next token is: exam(4)



덧글

댓글 입력 영역