Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 转换和验证字符串_C++_Algorithm_Console Application_Std - Fatal编程技术网

C++ 转换和验证字符串

C++ 转换和验证字符串,c++,algorithm,console-application,std,C++,Algorithm,Console Application,Std,我需要以HH:MM的形式将时间作为用户输入,然后对其进行验证。 在这种特定的形式下,它需要是一个适当的时间。有什么好主意吗 我正在尝试创建一个函数,该函数将遍历字符串,验证每个字符,然后将它们转换为数字(或某种时间戳),这样我就可以相互比较几个字符串 我只使用std名称空间。使用boost::regex匹配字符串及其部分(HH)和(MM),并使用scanf获取小时和分钟。使用boost::regex匹配字符串及其部分(HH)和(MM),并使用scanf获取小时和分钟。听起来更像是一个算法问题,我

我需要以HH:MM的形式将时间作为用户输入,然后对其进行验证。 在这种特定的形式下,它需要是一个适当的时间。有什么好主意吗

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


我只使用std名称空间。

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

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

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

1、检查字符串的长度(如果是5)。
2,检查'':'在中间。< BR> 3、检查HH是否在范围内。
4、检查MM是否在范围内。

5、将其转换为方便您的格式。

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

1、检查字符串的长度(如果是5)。
2,检查'':'在中间。< BR> 3、检查HH是否在范围内。
4、检查MM是否在范围内。

5、将其转换为方便您的格式。

对于这个特定的问题来说,这可能有些过分,但这种任务非常适合状态机。基本上,您希望一次读取一个字符的输入,每个字符都可以更改机器的状态,直到您最终进入成功或错误状态。例如:

  • 第一个字符
    • 如果不是数字,则更改为错误状态
    • 否则,存储值并更改为状态2
  • 第二个字符
    • 如果不是数字,则更改为错误状态
    • 否则,将存储值乘以10,并添加第二个字符。如果结果超出范围,请更改为错误状态。否则,更改为状态3
  • 第三个字符
    • 如果
      ,则更改为状态4,否则更改为错误状态
  • 第四个字符
    • 与第一个角色类似,成功后变为状态5
  • 第五个字符
    • 类似于第二个角色,成功后变为状态6
  • 成功状态
    • 优胜者是你
  • 错误状态
    • 处理这个错误,duh

  • 对于这个特定的问题来说,这可能有些过分,但这种任务非常适合于状态机。基本上,您希望一次读取一个字符的输入,每个字符都可以更改机器的状态,直到您最终进入成功或错误状态。例如:

  • 第一个字符
    • 如果不是数字,则更改为错误状态
    • 否则,存储值并更改为状态2
  • 第二个字符
    • 如果不是数字,则更改为错误状态
    • 否则,将存储值乘以10,并添加第二个字符。如果结果超出范围,请更改为错误状态。否则,更改为状态3
  • 第三个字符
    • 如果
      ,则更改为状态4,否则更改为错误状态
  • 第四个字符
    • 与第一个角色类似,成功后变为状态5
  • 第五个字符
    • 类似于第二个角色,成功后变为状态6
  • 成功状态
    • 优胜者是你
  • 错误状态
    • 处理这个错误,duh