假如找到的这个字符串是Begin TriggerBlock Tue Feb 07 15:52:38 PM 2023,现在我要在里面获取年,月,日,小时,分钟,秒。并把它们单独存放在变量里
时间: 2024-03-03 16:47:18 浏览: 124
创建一个日期类,定义几个变量:年、月、日、小时、分钟、秒;
你可以使用 C++ 标准库中 `std::stringstream` 来对字符串进行格式化和解析。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string target = "Begin TriggerBlock Tue Feb 07 15:52:38 PM 2023";
std::stringstream ss(target);
std::string begin, trigger_block, day_of_week, month, day, time, meridian, year;
ss >> begin >> trigger_block >> day_of_week >> month >> day >> time >> meridian >> year;
int hour, minute, second;
std::sscanf(time.c_str(), "%d:%d:%d", &hour, &minute, &second);
std::cout << "Year: " << year << std::endl;
std::cout << "Month: " << month << std::endl;
std::cout << "Day: " << day << std::endl;
std::cout << "Hour: " << (meridian == "PM" ? hour + 12 : hour) << std::endl;
std::cout << "Minute: " << minute << std::endl;
std::cout << "Second: " << second << std::endl;
return 0;
}
```
这个程序先定义了一个字符串 `target`,表示要解析的字符串。然后使用 `std::stringstream` 对字符串进行解析,将解析结果存放到多个变量中。注意,在解析时间时,我们使用了 `std::sscanf` 函数来解析 `time` 变量,将其格式化为小时、分钟、秒三个整数。最后,我们将解析结果输出到控制台上。
注意,这里的小时需要根据 meridian 变量的值来进行判断和转换,如果是 PM 则需要加上 12 小时。
阅读全文