45.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:"와 같이 기준 문자를 여러 개 넣었습니다.