![]() |
Ответ: Проверка: является ли строка числом?
|
Ответ: Проверка: является ли строка числом?
PHP код:
23.2gh465E-1 - число 23.2465E-1 - число sdgf23.2465E-1 - не число т.е если первый символ - число, то и вся строка числом считается. Иначе - нет. Вотъ. :wallbash: Только если в ручную парсить строку, тогда и будет понятно. со sscanf - то же самое.... Щас ещё подумаю. // Сорри, блин, щас тока тему прочитал... Это уже обсуждалось))))) // Да, и ещё - из пыха выдрать трудно будет. Там 5-6 (особо не вникал) функций по 200-300 строк кода... И каждую переписывать О_о // В чистом виде нету... Есть в boost::lexical_cast. Го в гугл) // Спасибо OreZ за подсказку) |
Ответ: Проверка: является ли строка числом?
Сказано же было - все эти функции работают пока не встретят левый символ, поэтмоу в первом случае на выходе "23.2", что есть число как бэ. В данном конкретном случае - ручной парсинг всей строки и проверка каждого символа. Если все символы до '\0' прошли проверку - это число.
|
Ответ: Проверка: является ли строка числом?
Да-да, меня Фантом попросил функцию из пыха выдрать) Но когда я увидел, что придётся делать - что-то мне перехотелось) Вот, нашёл в сети - функция разбора действительных чисел на чистом C++ попробуй...
|
Ответ: Проверка: является ли строка числом?
Чот жесть, мне кажется - у меня компактнее это происходило.
Всем спасибо, подождём ещё) |
Ответ: Проверка: является ли строка числом?
Импер, что ты собираешься ждать?) Тебе же дали готовый пример) Переписывай под себя и всё.
|
Ответ: Проверка: является ли строка числом?
Уж дедлайн близится, а реализации всё нет.
Взял и набросал следующее: Код:
bool Check(char *s,int LEN){ Тест SBJoker Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Функция, конечно позволяет вводить фантастические занчения мантиссы и показателя, но это вполне удовлетворяет моему ТЗ. |
Ответ: Проверка: является ли строка числом?
|
Ответ: Проверка: является ли строка числом?
Кстати, по данному запросу в яндексе лидирует некий топик "Как лучше проверить, является ли строка числом?" (http://coder007.livejournal.com/568.html). Автор кторого отключил анонимные комменты. Так что рассмотрим его код здесь:
Код:
private static boolean checkBySteps(String string) { Цитата:
Данный парсер не может корреткно отреагировать даже на "+1". Он реагирует только на целые числа, в записи которых отсутсвует десятичная степень (12Е3). Ну это если кто будет лабы делать.. |
Ответ: Проверка: является ли строка числом?
Цитата:
Тьфу ... вообще запутался... Текст , как таковой не содержится в указателе!!! Надо было спросить так: "можно ли текст строки, которая передается через указатель..." А то я блин ломаю голову!!! А С++ - очень точный язык. ЗЫ . Проще свою функцию написать и не париться. Это и надежней будет! Еще можно через потоковые классы. iostream. там есть возможность преобразовать из строки - число. |
Ответ: Проверка: является ли строка числом?
Цитата:
Изначально (по-русски!) имелось в виду: текст, содержащийся в нуль-терминированной строке, указатель на которую был передан. А не "в тексте, переданном указателем на строку". Что некорректно. Цитата:
Цитата:
|
Ответ: Проверка: является ли строка числом?
Morganolla харе править свой пост =) Мои ответы теряют актуальность.
|
Ответ: Проверка: является ли строка числом?
В своё время не придал значению тому, что пустая строка ("") воспринимается как допустимое значение (подразумевая 0). При тестировании функции (точнее её реализации на Blitz3D) в полевых условиях с применением "эффекта кота" обнаружились (ВНЕЗАПНО?) дополнительные допустимые конструкции, которые уже с натяжкой можно списать на интеллектуальность парсера "строка->число". Исправляется всё просто.
Для проверки используется набор значений impersonalis-F1(FAIL-1): Код:
E Код:
bool Check(char *s,int LEN){ Код:
Test "SBJoker" |
Ответ: Проверка: является ли строка числом?
Читал тут спецификацию JSON: http://www.json.org/json-ru.html
Увидел вот эту картинку: http://www.json.org/number.gif Вспомнил эту тему, решил запостить. |
Часовой пояс GMT +4, время: 03:08. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot