C语言中怎么判断输入日期格式是否正确,要求输入的格式为年-月-日,如1995-12-06

 我来答
bdzhangzerun
2013-04-01 · 超过28用户采纳过TA的回答
知道答主
回答量:97
采纳率:50%
帮助的人:67万
展开全部
char str[100];
memset(str,0,100);
strcpy(str,"1995-12-06")
int year,month,day;
sscanf(str,"%d-%d-%d",&year,&month,&day);//自己调试下就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月光下的狼__
2013-04-01 · TA获得超过4.3万个赞
知道小有建树答主
回答量:3970
采纳率:4%
帮助的人:807万
展开全部
1,判断第5,8个是否为-
2,月份是否<13
3,号是否 满足 13578十腊 < 32, 46911<31 如果是闰年2<30。如果不是闰年2<30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
juan521jin
2013-04-01 · TA获得超过204个赞
知道小有建树答主
回答量:270
采纳率:66%
帮助的人:108万
展开全部
如果test为你输入的时间信息用
test.indexof("-")
判断是否是要求的格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furious_tauren
推荐于2017-09-03 · TA获得超过4053个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:746万
展开全部
#include <stdio.h>
static int is_valid_date(int y, int m, int d)
{
int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
month[1] = 29;
return m > 0 && m <= 12 && d > 0 && d <= month[m - 1];
}
int main(void)
{
int y, m, d;
scanf("%4d-%2d-%2d", &y, &m, &d);
if (is_valid_date(y, m, d))
printf("valid date\n");
else
printf("invalid date\n");
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式