转换并验证字符串

时间:2012-12-22 19:25:59

标签: c++ algorithm console-application std

我需要花时间作为用户输入,形式为HH:MM,然后验证它。 它需要是某种格式的适当时间。关于如何做到这一点的任何好主意?

我正在尝试创建一个迭代字符串的函数,验证每个字符,然后将它们转换为数字(或某种时间戳),这样我就可以将几个字符串相互比较。

我只使用std命名空间。

3 个答案:

答案 0 :(得分:2)

使用boost :: regex匹配字符串及其部分(HH)和(MM),并使用scanf获取小时和分钟。

答案 1 :(得分:2)

这听起来更像算法问题,我会:

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

答案 2 :(得分:1)

这个特殊问题可能有点过头了,但这种任务非常适合状态机。基本上,您需要一次读取输入的一个字符,并且每个字符都可以更改机器的状态,直到您最终处于成功或错误状态。例如:

  1. 第一个角色
    • 如果不是数字,请更改为错误状态
    • 否则存储值并更改为状态2
  2. 第二个角色
    • 如果不是数字,请更改为错误状态
    • 否则将存储的值乘以10并添加第二个字符。如果结果超出范围,请更改为错误状态。否则,请更改为州3
  3. 第三个角色
    • 如果:,请更改为状态4,否则更改为错误状态
  4. 第四个字
    • 与第一个角色类似,成功后更改为状态5.
  5. 第五个角色
    • 与第二个角色类似,成功后更改为状态6。
  6. 成功状态
    • 胜利者是yuo!
  7. 错误状态
    • 处理错误,呃。