我有一个输入字符串代表24小时。有效输入是字符串,如:
7:04
07:4个
7:4个
07:04
无效的输入字符串显然与25:68
类似。有没有简单的方法来验证时间格式,然后解析时间格式的时间,因为时间是今天的?可能有任何增强库在这里派上用场吗?
答案 0 :(得分:2)
你可以使用strptime来做到这一点,它是类Unix系统的标准配置: http://www.kernel.org/doc/man-pages/online/pages/man3/strptime.3.html
答案 1 :(得分:2)
我看到两个选项:
简单的正则表达式或boost :: xpressive(我更喜欢它)。
获取分号之间的数字并将其转换为数字,然后检查它们的值。像这样:
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
作为验证部分,虽然这是一个简单的问题,你可以轻松推出自己的解决方案。