2.模拟问题——5.星期几与字符串对应

在这里插入图片描述

输入输出示例

输入:
9 October 2001
14 October 2001
输出:
Tuesday
Sunday

【原题链接】

字符串处理

C风格的字符串

  • 字符数组,以’\0‘结尾
  • 建议在输入输出语句中使用

C++风格的字符串

#include <string>
using namespace std;
  • 初始化:string str1 = str;//world
  • 连接: str1 + “hello” //即"worldhello"
  • 字符:str1[0]//即’w’
  • 长度:str1.length();
  • 判断相符:str1 == “world”
  • 比较字典顺序:str1 > “abandon”
  • 从C++风格到C风格:str1.c_str();

字符串到数字的对应:map映射

#include <map>
using namespace std;
    map<string,string> myMap = {//<键key的类型,值value的类型>{"Caixukun","ikun"},{"Wuyifan","meigeni"}};char str[100];scanf("%s",str);string name = str;printf("%s的粉丝被称为%s\n",name.c_str(),myMap[name].c_str());

星期的计算

根据今天是星期几,计算要求日期距离今天的距离,然后计算其星期数即可

#include <cstdio>
#include <string>
#include <map>
using namespace std;
int main() {map<string,int> month2int = {{"January",1},{"February",2},{"March",3},{"April",4},{"May",5},{"June",6},{"July",7},{"August",8},{"September",9},{"October",10},{"November",11},{"December",12}};int month_Day[13]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};string int2Weekday[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};int year, mon, day;char str[100];string month;bool isBefore;//在过去还是在未来while(scanf("%d%s%d",&day,str,&year)!=EOF){month = str;//把字符串从C风格转换成C++风格mon = month2int[month];if (year < 2024||2024 == year && mon <3 || 2024 ==year &&mon==3&&day <10){isBefore= true;}else{isBefore= false;}//从begin走到endint beginYear, beginMon, beginDay, endYear, endMonth, endDay;if (isBefore){beginYear = year;beginMon = mon;beginDay = day;endYear = 2024;endMonth = 3;endDay = 10;} else{beginYear = 2024;beginMon = 3;beginDay = 10;endYear = year;endMonth = mon;endDay = day;}//2024年3月10日是星期日int totalDay = 0;while(true){if (beginYear==endYear&&beginMon==endMonth&&beginDay==endDay){break;}++totalDay;//next daybool isLeap = beginYear%400==0||beginYear%100!=0&&beginYear%4==0;if(isLeap){month_Day[2]=29;} else{month_Day[2]=28;}++beginDay;if (beginDay>month_Day[beginMon]){beginDay = 1;++beginMon;if (beginMon>12){beginMon=1;beginYear++;}}}if (isBefore){printf("%s\n",int2Weekday[7-totalDay%7].c_str());}else{printf("%s\n",int2Weekday[(totalDay)%7].c_str());}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/508355.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Electron通过预加载脚本从渲染器访问Node.js

问题&#xff1a;如何实现输出Electron的版本号和它的依赖项到你的web页面上&#xff1f; 答案&#xff1a;在主进程通过Node的全局 process 对象访问这个信息是微不足道的。 然而&#xff0c;你不能直接在主进程中编辑DOM&#xff0c;因为它无法访问渲染器 文档 上下文。 它们…

FreeRTOS学习笔记——FreeRTOS中断管理

精华总结&#xff1a; 中断优先级0为最高&#xff0c;任务优先级0为最低 中断优先级分组中为方便rtos管理4bit全部设置成抢占优先级 32单片机的中断管理是由3个寄存器完成&#xff08;名字忽略&#xff0c;具体功能忽略&#xff09;&#xff0c;三个寄存器都是32bit&#xff0c…

【JavaScript】手写 Promise(静态方法)

手写Promise-静态方法resolve 需求: 返回一个带有成功原因的Promise对象 HMPromise.resolve(new HMPromise((resolve, reject) > {// resolve(resolve)// reject(reject)// throw error })).then(res > {console.log(res:, res) }, err > {console.log(err:, err) …

Google Dremel和parquet的复杂嵌套数据结构表征方法解析

转载请注明出处。作者&#xff1a;archimekai 核心参考文献&#xff1a; Dremel: Interactive Analysis of Web-Scale Datasets 文章目录 引言复杂嵌套数据结构的无损表征问题Dremel论文中提出的表征方法parquet备注 引言 Dremel是Google的交互式分析系统。Google大量采用prot…

阅读笔记 | Transformers in Time Series: A Survey

阅读论文&#xff1a; Wen, Qingsong, et al. “Transformers in time series: A survey.” arXiv preprint arXiv:2202.07125 (2022). 这篇综述主要对基于Transformer的时序建模方法进行介绍。论文首先简单介绍了Transformer的基本原理&#xff0c;包括位置编码、多头注意力机…

01 MySQL之连接

1. 连接 1.0 基础认知 多表(主表)和一表(从表的区别): 多表一般是主表&#xff0c;一般存储主要数据&#xff0c;每个字段都可能存在重复值&#xff0c;没有主键&#xff0c;无法根据某个字段定位到准确的记录&#xff1b; 一表一般是从表&#xff0c;一般存储辅助数据&…

基础二分学习笔记

模板 : 个人倾向第一种 ; 整数二分 : 最大化查找 : 可行区域在左侧 : 查找最后一个<q的数的下标 : int find(int q){// 查找最后一个 < q 的下标 int l 0 , r n 1 ;while(l 1 < r){int mid l r >> 1 ;if(a[mid]<q) l mid ;else r mid ;}return…

如何限制一个账号只在一处登陆

大家好&#xff0c;我是广漂程序员DevinRock&#xff01; 1. 需求分析 前阵子&#xff0c;和问答群里一个前端朋友&#xff0c;随便唠了唠。期间他问了我一个问题&#xff0c;让我印象深刻。 他问的是&#xff0c;限制同一账号只能在一处设备上登录&#xff0c;是如何实现的…

第二篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas金融数据分析

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas 在金融数据分析中的常见用途和功能介绍二、金融数据清洗和准备示例代码三、金融数据索引和选择示例代码四、金融数据时间序列分析示例代码五、金融数据可视化示例代码六、金融数…

CUDA 中的线程组织

明朝那些事中有一句话&#xff1a;我之所以写徐霞客是想告诉你&#xff0c;所谓千秋霸业万古流芳&#xff0c;与一件事相比&#xff0c;其实都算不了什么&#xff0c;这件事情就是——用你喜欢的方式度过一生。 我们以最简单的 CUDA 程序&#xff1a;从 GPU 中输出 Hello World…

C++基于多设计模式下的同步异步日志系统day4

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C基于多设计模式下的同步&异步日志系统 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 只要内容主要实现了同步日志消息…

Unreal触屏和鼠标控制旋转冲突问题

Unreal触屏和鼠标控制旋转冲突问题 鼠标控制摄像机旋转添加Input轴计算旋转角度通过轴事件控制旋转 问题和原因问题原因 解决办法增加触摸控制旋转代码触屏操作下屏蔽鼠标轴响应事件 鼠标控制摄像机旋转 通过Mouse X和Mouse Y控制摄像机旋转。 添加Input轴 计算旋转角度 通过…