文章目录

  • 题目分析
  • 题目链接

题目分析

题意重述:四个字符串,前两个字符串是一组:求 日期和小时; 后两个字符串是一组:求分钟。

对于前两个字符串: 需要统计两次,位置相同并且是相同的字符。 第一个符合的是日期,第二个符合的小时。

C语言输出控制:特别好用!!!

ac代码

#include<bits/stdc++.h>
using namespace std;int main(){string a,b,c,d;cin>>a>>b>>c>>d;//遍历日期 :前两个字符串int i=0;while(true){if(a[i]==b[i] && a[i]>='A' && a[i]<='G')  break;i++;}vector<string> vec={"MON", "TUE","WED","THU","FRI","SAT","SUN"};string day = vec[a[i]-'A'];printf("%s ",day.c_str());  // c语言兼容c++string类, 使用  c_str()方法//遍历小时, 遍历前两个字符串i++;while(true){if(a[i]==b[i] && (a[i]>='0' && a[i]<='9' || a[i]>='A' && a[i]<='N')) break;i++;}// C语言 格式控制特别厉害!!!!!! 下面是输出 小时//如果是0~9 则前面补零;如果是‘A’-‘N’则 减去‘A’=10之后再加10printf("%02d", a[i]<'9'?a[i]-'0' : a[i]-'A'+10 );//遍历后两个字符串int j=0;while(true){if(c[j]==d[j] && (c[j]>='a' && c[j]<='z' || c[j]>='A' && c[j]<='Z') ) break;j++;}printf(":%02d",j);}

下面代码输出3位,不足三位前面用0补上。%03d

int a = 4;
printf("%03d",a);

参考:printf前面补零的用法C语言

ac代码(写复杂了!!!)

#include<bits/stdc++.h>
using namespace std;string msg1, msg2;
string hour1 ,hour2;unordered_map<char,string>  week={{'A',"MON"},{'B',"TUE"},{'C',"WED"},{'D',"THU"},{'E',"FRI"},{'F',"SAT"},{'G',"SUN"}};unordered_map<char ,string> time1={{'0',"00"},{'1',"01"},{'2',"02"},  {'3',"03"},  {'4',"04"},  {'5',"05"}, {'6',"06"},  {'7',"07"},  {'8',"08"},  {'9',"09"},  {'A',"10"},  {'B',"11"},  {'C',"12"},  {'D',"13"},  {'E',"14"},  {'F',"15"},  {'G',"16"},  {'H',"17"},  {'I',"18"},  {'J',"19"},  {'K',"20"},  {'L',"21"},  {'M',"22"},  {'N',"23"}};string day,hour,minute;bool check(char s){if( s>='a' && s<='z') return true;if( s>='A' && s<= 'Z') return true;return false;
}int main(){cin>>msg1>>msg2>>hour1>>hour2;int len1 = msg1.size(),len2=msg2.size();int len = min(len1,len2);int lenHour1 =hour1.size(),lenHour2 = hour2.size();int lenHour = min(lenHour1,lenHour2);//处理日期int mark =0;  //标记第一次的位置ifor( int i=0;i<len;i++){if(msg1[i]==msg2[i]){char t = msg1[i];if(t>='A' && t<='G'){day = week[t];mark=i;break;}}}//处理小时for( int i =mark+1;i<len;i++){if(msg1[i]==msg2[i]){char t = msg1[i];if(t>='0'&& t<='9' || t>='A' && t<='N'){hour = time1[t];break;}}}string s;//分钟for(int i=0,j=0;i<lenHour;i++){if(hour1[i]==hour2[i] &&check(hour1[i])){j=1;if(i<9)s = '0'+to_string(i);else{s+= to_string(i);}}if(j==1) break;}cout<<day<<" "<< hour<<":" <<s<<endl;}

题目链接

PAT甲级1061 Dating

PAT甲级1061 Dating:[C++题解]字符串处理(C语言格式控制牛逼!)相关推荐

  1. 【PAT】PAT甲级题库所有题解(持续更新中...)

    题解: 本文为导航页,一些希望刷PAT甲级的玩家可以来看看,我会持续更新所有题目的题解(取决于我做到哪儿了(doge)) 题号按照PAT官网给出的标注 题目: 链接 标签 1001 A+B Forma ...

  2. PAT甲级 2019年冬季 题解

    题目1:7-1 Good in C (20分) When your interviewer asks you to write "Hello World" using C, can ...

  3. PAT 甲级 1061 PAT Ranking 个人错误总结

    这个题一开始没读懂题目,common理解错了,多注意英语. 这个题就是设定条件,不难. #include<bits/stdc++.h> using namespace std; char ...

  4. 【PAT甲级】字符串处理及进制转换专题

    目录 字符串处理 PAT甲级 1001 A+B Format (20 分) PAT甲级1005 Spell It Right (20 分) PAT甲级1035 Password (20 分) PAT甲 ...

  5. PAT甲级1108 Finding Average :[C++题解]stof、字符串变成浮点数、try和catch捕获异常、C++语法题

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: C++中有函数stoi表示把string 变成int,还有函数stof,表示把string变成float.如果是合法数字的话,sto ...

  6. PAT甲级1084 Broken Keyboard:[C++题解]字符串处理、双指针算法

    文章目录 题目分析 题目来源 题目分析 来源:acwing ac代码1:双指针算法 读入两个字符串a和b,用两个指针i和j分别遍历a.b.如果a[i] ==b[j],说明键盘没坏,j往后移动一个:如果 ...

  7. PAT甲级1082 Read Number in Chinese:[C++题解]字符串处理

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析 从后往前,四位数作为1组来处理.每组单位最多是十百千,组间单位是万和亿.以123456789为例,分成三组为1,2345,6789,下 ...

  8. PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...

  9. PAT甲级1073 Scientific Notation:[C++题解]字符串处理、科学计数法

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:字符串处理. 思路: 把底数部分抠出来(用a表示);指数部分变成int型(用b表示)(指数部分代表小数点往哪移动,并且移动几位),比如 ...

最新文章

  1. c语言链表如何做成环,在C语言中单向链表环测试并返回环起始节点的实现方法...
  2. oauth2 增加token 返回参数_RingCentral Tech | OAuth2.0面面观
  3. 从单体迈向 Serverless 的避坑指南
  4. vue时间控件美化成IOS样式(移动端),vux组件datatime添加星期几/周几教程
  5. 巧用linux服务器下的/dev/shm/,避开磁盘IO不给力!
  6. 如何用js获取浏览器URL中查询字符串的参数
  7. pythonstdin_如何写入Python子进程'stdin?
  8. [UWP]使用Picker实现一个简单的ColorPicker弹窗
  9. nginx之虚拟主机与请求的分发
  10. C# 获取枚举的DescriptionAttribute内的字符串
  11. android 按钮点击返回顶部,微信浏览器点击系统返回,安卓返回会重载页面回到页面顶部,iOS则返回则会保留之前浏览位置的解决方法...
  12. python中的多进程与多线程(一)
  13. 创建对象时引用的关键字,assign,copy,retain
  14. 欧拉计划(1~3)ps:以后看题一定要认真
  15. vue 解析并播放amr文件
  16. / ./ ../路径含义
  17. 【计算机网络】网络层——IPv6/IP组播/移动IP
  18. 获取Golang环境变量的三种方式
  19. 推动前端团队基础设施建设流程方案计划书
  20. java学习 day01_basic

热门文章

  1. CKEditor上传图片—配置CKFinder
  2. tf.nn.softmax_cross_entropy_with_logits 和 tf.contrib.legacy_seq2seq.sequence_loss_by_example 的联系与区别
  3. php 方法求 的近似值,PHP中的等角近似
  4. python程序多线程_Python-多线程编程
  5. php实现tail,Linux-如何用php实现Linux下的tail -f命令?
  6. 简单粗暴方便好用树莓派FTP远程文件服务器
  7. 【arduino】在Arduino上运行FreeRTOS操作系统,freeRTOS入门教程helloword
  8. arduino代码运行时间测试函数,代码性能运行时间测试方法
  9. 【树莓派】树莓派CSI摄像头安装及测试方法
  10. FMCW雷达书籍分享 FMCW radar design