본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. c언어 strtok 함수 문자열을 문자로 자르기

c언어 strtok 함수 문자열을 문자로 자르기

· 댓글개 · 바다야크

C strtok() 문자열을 문자로 자르기 함수

C언어에서 문자열을 문자로 자르는 함수입니다.

  • 헤더: string.h
  • 형태: char *strtok(char *restrict s1, const char *restrict s2)
  • 인수: char *s1 자르기 대상 문자열
    char *s2 잘라 내기 위한 문자 모임
  • 반환: char * 잘라 내기한 문자열의 첫번째 포인터를 반환하며, 문자열이 없다면 NULL을 반환

예로, "jwmx.tistory.com"을 "."으로 자르기를 하면 함수를 호출할 때마다 "jwmx", "tistory", "com"의 선두 번지의 포인터를 반환합니다.

처음에는 자르기 대상인 문자열과 자르기를 위한 문자를 인수로 호출합니다.

strtok( str, sep);

이후에는 문자열 대상을 NULL과 자르기를 위한 문자만 인수로 전달합니다.

strtok( NULL, sep);

더 이상 구할 문자열이 없다면 NULL이 반환됩니다.

주의) strtok()는 잘라 낸 문자열을 구하기 위해 대상 문자열에 NULL을 추가합니다. 즉, 원래의 문자열 내용이 변경 되므로 주의해야 합니다.

C언어 strtok() 함수 예제

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

int main( void)
{
   char   str[] = "jwmx badayak com";
   char *ptr;
   int   ndx;

   printf( "함수 호출 전: %s\n", str);

   ptr = strtok( str, " ");
   printf( "%s\n", ptr);

   while( ptr = strtok( NULL, " ")){
      printf( "%s\n", ptr);
   }

   printf( "함수 호출 후: %s\n", str);

   // 함수 호출 후에는 원본 문자열의 내용이 바뀌므로 주의해야 합니다.

   printf( "문자열의 변화\n");

   for( ndx=0; ndx < 17; ndx++)
      printf( "%c %d\n", str[ndx], str[ndx]);

   return 0;
}

C언어 strtok() 예제 실행 결과

]$ ./a.out
함수 호출 전: jwmx badayak com
jwmx
badayak
com
함수 호출 후: jwmx
문자열의 변화
j 106
w 119
m 109
x 120
 0
b 98
a 97
d 100
a 97
y 121
a 97
k 107
 0
c 99
o 111
m 109
 0
]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.