如何以短时间格式验证输入字符串

时间:2013-02-17 14:06:21

标签: c++ validation time-format

我有一个输入字符串代表24小时。有效输入是字符串,如:

  

7:04
  07:4个
  7:4个
  07:04

无效的输入字符串显然与25:68类似。有没有简单的方法来验证时间格式,然后解析时间格式的时间,因为时间是今天的?可能有任何增强库在这里派上用场吗?

3 个答案:

答案 0 :(得分:2)

你可以使用strptime来做到这一点,它是类Unix系统的标准配置: http://www.kernel.org/doc/man-pages/online/pages/man3/strptime.3.html

答案 1 :(得分:2)

我看到两个选项:

  1. 简单的正则表达式或boost :: xpressive(我更喜欢它)。

  2. 获取分号之间的数字并将其转换为数字,然后检查它们的值。像这样:

    string sTime("53:30");
    int iSemiColon = sTime.find(':');       
    if (atoi(sTime.substr(0, iSemiColon).c_str()) >= 24) return false;
    if (atoi(sTime.substr(iSemiColon + 1).c_str()) >= 60) return false;
    

答案 2 :(得分:1)

this answer。如果你不仅限于STL,你可以使用boost.Regex作为验证部分,虽然这是一个简单的问题,你可以轻松推出自己的解决方案。