这个show函数怎么输出三个不同的date啊

img


这个图片的题目,函数的实现我不会那个字符串的,show函数不知道怎么输出三个不同的date,大家能帮我一下吗

循环,遇到-或回车就截取,先把日期的数值取出来,后面就简单了。或者用string及其函数截取

供参考:

#include <stdio.h>
#include <string.h>
#include <time.h>
class date{
     public:
           date(char *NewD);
           date(int NewY,int NewM,int NewD);
           date();
           void show();
     private:
           int y,m,d;
};
date::date(char *NewD)
{
     if( NewD != NULL && sscanf(NewD,"%d-%d-%d",&y,&m,&d)==3);
     else
        y = 0,m = 0,d = 0;
}
date::date(int NewY,int NewM,int NewD)
{
     y = NewY; m = NewM; d = NewD;
}
date::date()
{
     time_t t;
     struct tm *lt;
     time(&t);
     lt = localtime(&t);//转为时间结构
     y = lt->tm_year+1900; m = lt->tm_mon+1; d = lt->tm_mday;
}
void date::show()
{
     printf("%d %d %d\n",y,m,d);
}
int main()
{
     date d1,d2(2011,3,8),d3("2011-03-19");
     d1.show();
     d2.show();
     d3.show();

     return 1;
}