如何知道std :: string / Cstring中的值是否为数字

时间:2011-04-25 12:54:47

标签: c++ mfc

启动应用程序时,我收到命令行参数。 我从命令行得到四个参数。

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

任何人都可以帮我这个。

3 个答案:

答案 0 :(得分:3)

here您可以找到如何确定字符串是否为70种语言的数字!

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

您可能需要将输入字符串转换为数字值,因此没有理由分两步(检查,然后转换)。最好一步到位。

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

答案 1 :(得分:2)

查看字符串中的每个字符,如果您发现的不是数字或“。”,那么它不是数字。

答案 2 :(得分:1)

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

e.g。 strtod而非atof