![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Lemur |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.12.2005 Репутация: нет Всего: нет |
Собственно сабж... без всяких замут надо написать
как эо реализовать??? |
|||
|
||||
| Mephistopheles |
|
|||
|
Бегущий от света ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 15.11.2005 Где: Где нет света Репутация: нет Всего: 6 |
Разбираешь введёное по символам и каждый сравниваешь: входит ли он в диапазон чисел по кодам ASCII. Если хоть раз нет - это не число.
Это сообщение отредактировал(а) Mephistopheles - 17.12.2005, 07:03 --------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
ф-ция strtol.
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Mephistopheles |
|
|||
|
Бегущий от света ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 15.11.2005 Где: Где нет света Репутация: нет Всего: 6 |
Mayk
Так не интересно. --------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света. |
|||
|
||||
| darkart |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 9.11.2005 Репутация: 2 Всего: 31 |
Входит ли каждый символ посл-ти в цифры и "."(","), если первый символ - '0', то или длина строки = 1 или после него должно стоять '.' или запятая. '.'(',') должна быть одна или её не должно бвть вовсе, она не может быть последним символом.
|
|||
|
||||
| Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Вот сам недавно написал такую функцию:
-------------------- i_i (';') (V) ![]() |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 2 Всего: 261 |
А почему нельзя прсто через atoi прогнать и не проверить на идентичность строке "0"?
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Здесь 3 нюанса.
1) обычно задания подобного рода домашка, и там надо делать ручками 2) Иногда необходимо ещё чтото делать параллельно (например заменить какието цифры, посмотреть на каком месте какая цифра итд.) 3) неизвестно, что делает стандартная функция. "Поймёт" ли кодировку? Как долго будет исполнятся? Думаю в данном случае 1 вариант определяющий А так atoi конечно лучший вариант. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 2 Всего: 261 |
Ну не знаю, не знаю. Изврат... Я понимаю, ручками ограничить в консоли ввод только целых и дробных чисел, чтобы еще и точку там где не надо ввести было нельзя и все такое... Но это...
|
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Я плакаль. Дело в том, что мне требовалось написать прогу с использованием SQL на С++ builder'e - простенькую прогу, чтобы пользователи вводили определенный номер и в БД (на сервере БД) очищались определенные поля. Чтобы пользователи "случайно" не вводили цифры, содержащие посторонние симоволы, я написал эту функцию.
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 2 Всего: 261 |
Блин... Тогда тут только StrToInt
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
strtol есть
|
|||
|
||||
| Voldemar2004 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
sergej.z, по-моему твоя функция всегда возвращает ноль. Из хелпа пример нормально работает:
-------------------- i_i (';') (V) ![]() |
||||||
|
|||||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
И мои пять копеек
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Да, конечно надо было так:
Компилера под рукой не было
|
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Собственно, каким числом: только целочисленным или с плавающей точкой тоже может быть? И какие требования к записи числа? Может, "0x100" тоже числом считать? Плохая у тебя функция. Начиная с названия (Digit – это обычно цифра, а не число), и заканчивая явно хромающей реализацией. Зачем нужна такая бодяга i<strlen(String) в цикле for, где у тебя strlen будет вычисляться n-ное количество раз, когда можно просто написать String[i] ? (коли дошёл до конца строки – получи свой 0 и свободен). Ну а тут if( !iswdigit(String[i]) && String[i] != '.' && String[i] != '-' ) у тебя пройдёт много чего наподобие "2.54.5––2–..–1"
И где у тебя это количество символов берётся? |
|||
|
||||
| Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
Скачал сейчас архив статей по С++ винградовский и оттуда копирую:
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |