2011-04-25 36 views
2

我在启动应用程序时收到命令行参数。 我从命令行获取四个参数。如何知道std :: string/Cstring中的值是否为数字

解析后我将它们存储在四个std :: string/CString(mfc)变量中,现在我需要知道该值是十进制还是不是。因为这些参数将用于某些数学计算。

任何人都可以帮助我做到这一点。

回答

3

here你可以找到如何确定一个字符串是否是数字,用70种语言!

我不确定是否所有解决方案都检查相同的事情。 C++实现检查输入是基于10的正/负整数/浮点,或者如果a是基8/16的正/负整数。 这是你想要的吗?你需要只支持正数吗?你需要支持浮点吗?

也许你需要将你的输入字符串转换为数字值,所以没有理由分两步做(检查,然后转换)。最好一步完成。

还有一件事:如果输入字符串太长,例如“32525252332912461984612491264912649126129319312931279171295127951275129” - 您通常不希望将其视为有效输入。

+0

哦,不错。对于那些还没有关注链接的人来说,“70种语言”是指计算机语言,而不是人类语言。 – 2011-04-25 13:07:38

2

看看字符串中的每个字符,如果发现不是数字或'。'的东西,那么它就不是数字。

+0

cool..nice idea – 2011-04-25 13:00:45

+3

失败:“0.1.2.3”通过测试但不是有效的数字。 – 2011-04-25 13:16:26

+0

是的,你需要某种计数器来确保只有0或1个''。' – Vache 2011-04-25 13:26:01

1

只需使用明确报告失败的字符串 - >数字转换函数。

例如strtod而不是atof

相关问题