PTA 日期格式化 (天梯赛真题集)

题目描述:
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

输入样例:

03-15-2017

输出样例:

2017-03-15

用字符串:

#include <bits/stdc++.h>

using  namespace std;

int  main()
{
    string date;
    string str;
    cin>>str;
    date = str.substr(6);//取子串,将str中第六个字符后的所有子串组成一个新串赋给date
    date = date.insert(4,"-");//插入字符串,在date的第四个字符后插入
    date = date.insert(5,str.substr(0,5));//在date的第五个字符后插入str的第一到第六个字符组成的字符串
    cout<<date;
    return 0;
}

用数字:

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int year,month,day;
    scanf("%d-%d-%d",&month,&day,&year);
    printf("%d-%02d-%02d",year,month,day);
    return 0;
}