如何验证短时间格式的输入字符串
How to validate input string in short time format
我有一个输入字符串,它表示24小时的时间。有效的输入是字符串,如:
7:04
07:4
7:4
07:04
无效的输入字符串显然类似于25:68
。有没有什么简单的方法可以验证时间格式,然后以epoch格式解析,假设时间是今天的时间?这里可能有什么方便的boost库吗?
您可以使用strptime来完成此操作,这是类Unix系统上的标准配置:http://www.kernel.org/doc/man-pages/online/pages/man3/strptime.3.html
我看到两个选项:
-
简单的regex或boost::expression(我更喜欢它)。
-
获取分号之间的数字并将其转换为数字,然后检查其值。类似这样的东西:
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;
看看这个答案。如果您不局限于STL,您可以使用boost.Regex
作为验证部分,尽管这是一个非常简单的问题,您可以轻松地推出自己的解决方案。
相关文章:
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- C++ 我的开关格式中的循环不允许我显示菜单选项或接受输入?
- 如何检查程序员在C++中提供的两种不同格式的输入
- 如何为输入设置变量编号和__android_log_print格式
- 如何使用正则表达式将输入数字格式化为字符串
- 此功能希望从std :: istream解析该功能的输入格式
- 检查leandit输入是否具有正确的格式QT 5 C
- C++ 用户输入的字符串必须采用 DD-MM-YYYY 格式
- 如何提示用户在C++中输入正确的电子邮件地址格式
- 如何在 c++ 中从".in"格式的文件中获取输入?此代码进入无限循环,但适用于".txt"文件格式
- cvPreparePredictData中不支持的格式或格式组合(输入样本必须具有32fC1类型)
- (C )以Specfic格式从用户中获取输入
- 如何将GUI用户字符串输入转换为使用C++库函数的格式
- 使用boost::propertytree为我的代码输入文件格式
- push_back opencv中输入参数的格式不匹配
- windows CopyFile的正确输入格式是什么
- 以mm/dd/yyyy格式输入日期,并将其拆分为3个单独的变量
- 二维数组C++中的输入格式
- 时间格式 HH:MM:SS 输入
- 如何将用户输入格式化为整洁的表格,以便在C++中输出