본문 바로가기
프로그래머의 길/C & C++

문자열 함수 strtok 예제

by 제이콥케이 2007. 3. 19.
반응형

날짜 예제

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

struct date
{
 unsigned int year;
 unsigned int mon;
 unsigned int day;
 
};

void getdate(struct date *p)
{
 char temp[80];
 char *cp;
 _strdate(temp);

 printf("월/일/년 %s\n", temp);

 cp = strtok(temp, "/");   // '/'을 구분자로 인식하여 나눈다.

 p->mon = atoi(cp);
 cp = strtok(NULL, "/");  // null 포인터를 넘기면 그 전 포인터로 이어서 작업한다.
 p->day = atoi(cp);
 cp = strtok(NULL, "/");  
 p->year = atoi(cp)+2000;
 cp = strtok(NULL, "/");
}


int main()
{
 struct date stdate;
 getdate(&stdate);

 printf("%u년 %u월 %u일\n", stdate.year, stdate.mon, stdate.day);

 return 0;
}


시간 예제

#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>

struct time
{
 unsigned int hour;
 unsigned int min;
 unsigned int sec;
 
};

void gettime(struct time *p)
{
 char temp[80];
 char *cp;
 _strtime(temp);

 printf("시/분/초 %s\n", temp);

 cp = strtok(temp, ":");
 p->hour = atoi(cp);

 cp = strtok(NULL, ":");
 p->min = atoi(cp);

 cp = strtok(NULL, ":");
 p->sec = atoi(cp);

}


int main()
{
 struct time sttime;
 
 while(1){  
  gettime(&sttime);
  //printf("%u시 %u분 %u초\n", sttime.hour, sttime.min, sttime.sec);
  Sleep(1000);    // 1000분의 1초 단위
  system("cls");  // dos명령어를 쓰기 위해선 system 함수를 이용하라
 }

 return 0;
}

반응형