Как узнать значение в std :: string / Cstring это число или нет - PullRequest
2 голосов
/ 25 апреля 2011

Я получаю аргумент командной строки при запуске приложения.Я получаю четыре параметра из командной строки.

после анализа я сохраняю их в четырех переменных std :: string / CString (mfc). Теперь мне нужно знать, является ли значение десятичным или нет. Поскольку этот параметр будет использоваться в некоторых математических вычислениях.

Может ли кто-нибудь помочь мне в этом.

Ответы [ 3 ]

3 голосов
/ 25 апреля 2011

здесь вы можете узнать, как определить, является ли строка числовой, на 70 языках!

Я не уверен, что все решения проверяют одно и то же.Реализация C ++ проверяет, является ли входное положительное / отрицательное целое число / число с плавающей запятой для основания 10, или если это a положительное / отрицательное целое число для основания 8/16. Это то, что вы хотите?Вам нужно поддерживать только положительные числа?Вам нужно поддерживать числа с плавающей запятой?

Возможно, вам потребуется преобразовать входные строки в числовое значение, поэтому нет причин делать это в два этапа (проверить, затем преобразовать).Лучше сделать это за один шаг.

Еще одна вещь: если строка ввода слишком длинная, например "32525252332912461984612491264912649126129319312931279171295127951275129" - обычно вы не хотите рассматривать ее как допустимый ввод.

2 голосов
/ 25 апреля 2011

Посмотрите на каждый символ в строке, и если вы найдете что-то, что не является цифрой или '.', То это не число.

1 голос
/ 25 апреля 2011

Просто используйте функцию преобразования строки-> числа, которая однозначно сообщает о сбое.

например, strtod, а не atof

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...