洛谷P8722 [蓝桥杯 2020 省 AB3] 日期识别

#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

int main() {
    // 映射表
    unordered_map<string, int> month_map = {
        {"Jan", 1}, {"Feb", 2}, {"Mar", 3}, {"Apr", 4},
        {"May", 5}, {"Jun", 6}, {"Jul", 7}, {"Aug", 8},
        {"Sep", 9}, {"Oct", 10}, {"Nov", 11}, {"Dec", 12}
    };

    // 输入英文日期
    string input;
    cin >> input;

    // 提取月份和日期
    string month_str = input.substr(0, 3); // 前三位是月份缩写
    int day = stoi(input.substr(3));      // 后两位是日期,转为整数

    // 输出结果
    cout << month_map[month_str] << " " << day << endl;

    return 0;
}

用了键值对的形式储存了十二个月,省去了判断的情况,stoi是c++11版本的特性,可以选择出整数出来。substr是切割字符串,第一个是起始位置,后面是切割长度

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "42abc";
    size_t pos;
    int number = stoi(str, &pos); // 提取有效数字
    cout << "Number: " << number << ", Next: " << str.substr(pos) << endl; 
    // 输出:Number: 42, Next: abc
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值