在C ++中验证字符串到时间格式

时间:2015-04-27 11:48:45

标签: c++

有关在c ++中执行验证字符串的有效方法的帮助相应于时间格式

TimeUserInputstring = "20151432-25:30:20";

TimeFormateAccepted = "yyyymmdd-hh:mm:ss";

1)没有使用正则表达式连接字符串如何检查 TimeUserInputstring 是根据 TimeFormateAccepted

2)TimeUserInputstring是一个有效的日期时间

提前致谢

我使用字符串连接完成了第一部分,不知道如何使用正则表达式。

和第二次验证的一些逻辑/代码

编译器使用is(g ++ 11)

1 个答案:

答案 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;