#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;
}