有关在c ++中执行验证字符串的有效方法的帮助相应于时间格式
TimeUserInputstring = "20151432-25:30:20";
TimeFormateAccepted = "yyyymmdd-hh:mm:ss";
1)没有使用正则表达式连接字符串如何检查 TimeUserInputstring 是根据 TimeFormateAccepted
2)TimeUserInputstring是一个有效的日期时间
提前致谢
我使用字符串连接完成了第一部分,不知道如何使用正则表达式。
和第二次验证的一些逻辑/代码
编译器使用is(g ++ 11)
答案 0 :(得分:0)
我试图解决的方式
struct tm tm;
std::string sDateTime = "20150423-15:10:50";
std::string delimiter = "-";
std::string sDate = sDateTime.substr(0, sDateTime.find(delimiter));
std::string sTime = sDateTime.substr(9, sDateTime.find(delimiter));
std::string s(sDate);
if (strptime(s.c_str(), "%Y%m%d", &tm))
std::cout << "date is valid" << std::endl;
else
std::cout << "date is invalid" << std::endl;
std::cout<<sDate<<std::endl;
std::cout<<sTime<<std::endl;