转换和验证字符串

Convert and validate string

本文关键字:字符串 验证 转换      更新时间:2023-10-16

我需要花费时间作为用户输入以hh:mm的形式进行验证。在某些格式中,它必须是适当的时间。关于如何做的好主意?

我正在尝试制作一个可以通过字符串迭代,验证每个字符的函数,然后将它们转换为数字(或某种时间戳),以便我可以将几个字符串与彼此进行比较。

我只使用std名称空间。

使用boost :: Regex匹配字符串及其零件(HH)和(mm),然后使用SCANF获取小时和分钟。

听起来更像是一个算法问题,我会:

1,如果是5。
2,检查':'是否在中间。
3,检查HH在范围内。
4,检查MM在范围内。
5,将其转换为将为您带来便利的格式。

这对于这个特定问题可能过于谋杀,但是这种任务非常适合状态机器。基本上,您需要一次读取输入一个字符,每个字符都可以更改机器的状态,直到最终以成功或错误状态为止。例如:

  1. 第一个字符
    • 如果不是数字,请更改为错误状态
    • 否则商店的价值并更改为状态2
  2. 第二个字符
    • 如果不是数字,请更改为错误状态
    • 否则将存储的值乘以10并添加第二个字符。如果结果超出范围,请更改为错误状态。否则,更改为状态3
  3. 第三个字符
    • 如果:,请更改为状态4,否则更改为错误状态
  4. 第四个角色
    • 类似于第一个字符,成功后变为状态5。
  5. 第五个字符
    • 类似于第二个字符,成功后变为状态6。
  6. 成功状态
    • 赢家是Yu!
  7. 错误状态
    • 处理错误,du。