1014. 福尔摩斯的约会 (20)

本文提供了一个PAT-B实践题目1014的解答代码示例,该示例利用C语言处理字符串,实现了从特定格式日期时间中提取并转换星期、小时和分钟的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:http://www.patest.cn/contests/pat-b-practise/1014

代码:

#include <stdio.h>
#include <ctype.h>

int main()
{
  char a[4][60];
  char c;
  int i,j=0,flag;
  void print_DAY(int);

  //输入
  for (i=0;i<4;i++)
  {
    j = 0;
    while((c=getchar())!='\n')
    {
      a[i][j] = c;
      j++;
    }
    a[i][j] = '\0';
  }
  //DAY HH
  j = 0;
  flag = 1;
  while (a[0][j]!='\0'&&a[1][j]!='\0')
  {
    //DAY
    if (flag == 1)
    {
      if ((a[0][j]-a[1][j])==0)
      {
        if (a[0][j]<='G'&&a[0][j]>='A')
        {
          print_DAY(a[0][j]-64);
          flag = 2;  
        }
      }
    }
    //HH
    else if(flag==2)
    {
      if ((a[0][j]-a[1][j])==0)
      {
        if (a[0][j]<='9'&&a[0][j]>='0')
        {
          printf("0%d:",a[0][j]-48);
          break;
        }
        else if(a[0][j]<='N'&&a[0][j]>='A')
        {
          printf("%d:",a[0][j]-55);
          break;
        }
      }
    }
    j++;
  }
  //MM
  j = 0;
  while (a[2][j]!='\0'&&a[3][j]!='\0')
  {
    if ((a[2][j]-a[3][j])==0)
    {
      if (isalpha(a[2][j])!=0)
      {
        printf("%02d",j);
        break;
      }
    }
    j++;
  }

  return 0;
}

void print_DAY(int i)
{
  switch (i)
  {
    case 1: printf("MON ");break;
    case 2: printf("TUE ");break;
    case 3: printf("WED ");break;
    case 4: printf("THU ");break;
    case 5: printf("FRI ");break;
    case 6: printf("SAT ");break;
    case 7: printf("SUN ");break;
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值