c语言按“XXXX-XX-XX”格式输入日期。 将该日期按“XX年X月”格式输出。
时间: 2023-04-10 17:04:54 浏览: 219
可以使用scanf函数按照“XXXX-XX-XX”格式输入日期,然后使用printf函数按照“XX年X月”格式输出日期。具体代码如下:
```c
#include <stdio.h>
int main() {
int year, month, day;
scanf("%d-%d-%d", &year, &month, &day);
printf("%d年%d月", year, month);
return 0;
}
```
输入示例:2022-05-20
输出示例:2022年5月
相关问题
用c语言怎么使用以连续8位数字格式输入自己的出生年月日,以xxxx年xx月xx日的格式输出
可以使用scanf函数和printf函数来实现这个功能。
示例代码如下:
```c
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入你的出生年月日(八位数字):");
scanf("%4d%2d%2d", &year, &month, &day); // %4d表示输入4位数字,%2d表示输入2位数字
printf("你的出生日期是:%d年%02d月%02d日\n", year, month, day); // %02d表示输出2位数字,不足补0
return 0;
}
```
在运行程序时,会提示用户输入出生年月日,然后使用scanf函数读取输入的八位数字,并将年、月、日分别存储到year、month、day变量中。最后使用printf函数以"xxxx年xx月xx日"的格式输出。其中,%d表示输出整数,%02d表示输出2位数字,不足2位时前面补0,%4d表示输出4位数字,%2d表示输出2位数字。
1000-9999年中任意输入一个日期,求出后天日期。c语言
可以使用C语言的`time.h`库中的函数来实现,具体实现步骤如下:
1. 定义一个`struct tm`结构体,并初始化为输入的日期。
2. 将结构体转换为时间戳,即秒数。
3. 将时间戳加上两天的秒数,即48 * 60 * 60。
4. 将新的时间戳转换为结构体。
5. 输出新的日期。
下面是一个示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
int year, month, day;
printf("请输入日期(格式:XXXX-XX-XX):");
scanf("%d-%d-%d", &year, &month, &day);
// 初始化结构体
struct tm date = {0};
date.tm_year = year - 1900; // 年份要减去1900
date.tm_mon = month - 1; // 月份要减去1
date.tm_mday = day;
// 转换为时间戳
time_t timestamp = mktime(&date);
// 加上两天的秒数
timestamp += 48 * 60 * 60;
// 转换为结构体
struct tm new_date = *localtime(×tamp);
// 输出新的日期
printf("后天的日期是:%d-%02d-%02d\n", new_date.tm_year + 1900, new_date.tm_mon + 1, new_date.tm_mday);
return 0;
}
```
注意:这里的代码中假设输入的日期是合法的,没有做输入校验。如果需要做校验可以使用`scanf`函数返回值来判断输入是否合法。