【发布时间】:2015-09-08 04:39:13
【问题描述】:
我正在开发一个带有两个命令行参数的程序。两个参数都应该是 yyyy-mm-dd 形式的日期。由于其他人将使用该程序并且它将从 mysql 请求,因此我想确保命令行参数有效。我最初的想法是遍历传入字符串的每个元素并对其执行某种测试。 '-' 很容易检查,但我不太确定如何处理数字,以及如何区分整数和字符。另外,我需要第一个日期“小于或等于”第二个日期,但我很确定我可以处理。
【问题讨论】:
-
尝试使用 std::stringstream
-
如果您使用 C++11,则有
regex库:\d{4}\-\d{2}\-d{2}将测试格式化。要验证它是有效日期而不是9999-99-99或2015-02-29,您需要使用某种日期库。 -
使用标准库中的正则表达式。关于“我需要第一个日期“小于或等于”第二个日期,但我很确定我可以处理。”...您可能想要分析来自StackOverflow 上的顶级人物:stackoverflow.com/questions/6841333/… 正确比较日期并非易事。
-
正则表达式不仅仅是 C++11 的特性。它可用于多种语言和所有版本的 C 和 C++ 作为附加库。
-
你试过蛮力技术吗?请使用您尝试过的代码更新您的问题。
标签: c++ command-line-arguments