40.3 날짜와 시간값 자르기

strtok 함수는 공백 문자뿐만 아니라 다양한 특수 문자와 알파벳 영문자를 기준으로 문자열을 자를 수 있습니다. 특히 기준 문자는 한 번에 여러 개를 지정할 수 있습니다.

다음 예제는 연-월-일T시:분:초 형식으로 된 문자열 "2015-06-10T15:32:19"을 잘라서 "2015", "06", "10", "15", "32", "19"를 각 줄에 출력합니다.

string_tokenize_timestamp.c

#define _CRT_SECURE_NO_WARNINGS    // strtok 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <string.h>    // strtok 함수가 선언된 헤더 파일

int main()
{
    char s1[30] = "2015-06-10T15:32:19";    // 크기가 30인 char형 배열을 선언하고 문자열 할당

    char *ptr = strtok(s1, "-T:");    // -, T, 콜론을 기준으로 문자열을 자름
                                      // 포인터 반환

    while (ptr != NULL)               // 자른 문자열이 나오지 않을 때까지 반복
    {
        printf("%s\n", ptr);          // 자른 문자열 출력
        ptr = strtok(NULL, "-T:");    // 다음 문자열을 잘라서 포인터를 반환
    }

    return 0;
}

실행 결과

2015
06
10
15
32
19

-, T, : (콜론)을 기준으로 문자열을 자르므로 "-T:"와 같이 기준 문자를 여러 개 넣었습니다.