You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言中将字符串格式的日期拆分成年、月、日整数变量?

如何从字符串中提取日期到整数变量

你可以使用sscanf()函数——它是scanf()的字符串版本,专门用于从内存中的字符串解析数据,完全符合你的需求。

完整实现代码

#include <stdio.h>

int main () {
    char Date[] = "02/02/2023";
    int Day, Month, Year;

    // 从字符串Date中解析日、月、年
    sscanf(Date, "%d/%d/%d", &Day, &Month, &Year);

    // 按你期望的格式输出(%02d确保显示两位数字,不足时补零)
    printf("Day = %02d\n", Day);
    printf("Month = %02d\n", Month);
    printf("Year = %d\n", Year);

    return 0;
}

关键说明

  • sscanf()的用法和scanf()几乎一致,唯一区别是它的第一个参数是要解析的目标字符串,而非控制台输入。
  • 格式字符串%d/%d/%d对应日期的日/月/年分隔结构,必须和输入字符串的分隔符完全匹配(如果你的日期用-分隔,就改成%d-%d-%d)。
  • 整数变量存储的是纯数值(比如Day实际值为2),要显示带前导零的两位数字,需用%02d格式符输出,它会自动为不足两位的数字补零。

额外优化:严格格式校验

如果需要避免解析错误格式的日期(比如日/月超过两位),可以限定数字位数:

sscanf(Date, "%2d/%2d/%4d", &Day, &Month, &Year);

这样sscanf()只会读取前两位作为日/月,前四位作为年,减少格式不匹配导致的错误。

内容的提问来源于stack exchange,提问作者LoneWolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:50:22