![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Попалась такая задача: определить является строка числом или нет с условием, первый символ строки может быть '+'.
Вот, что я смог написать. Подскажите где ошибки, заранее спасибо.
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
10-я строчка лишняя(temp[dlina]=a;)
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
а atoi нельзя пользоваться?
|
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
sergej.z
Вероятно это зачетная прога |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
если в строке присутствует запятая или точка, то atoi откинет дробную часть..
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Ну atof
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
я бы так решил:
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Ну а вот более простой вариант, без лишних проверок и функций.
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Ув. Guest
во первых вы пользуетесь функцией strtod от которой мы вроде отказались, во вторых Проверка на позитивное число отсутствует (и вообще на число) в третьих отсутствует копирование правильного числа в строку в четвёртых перевод в число - не нужная процедура, как видно из первого примера в пятых Ваш пример будет примерно в 100 раз медленнее моего в шестых(придирка И чего в том варианте непростого? Комментары вроде тоже есть. Ладно, напишу покороче
|
|||
|
||||
| kleks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.10.2005 Репутация: нет Всего: нет |
Попалась похожая задачка..., отсюда вопрос: а если в строке встречается пробел? Т.е как сделать так, что бы если я ввёл "321 321", то программа не приняла данную строчку за число!!! Заранее благодарен...
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
проверить на наличие в строке пробелов -- strchr() ( или strstr() )
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| kleks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.10.2005 Репутация: нет Всего: нет |
На сколько я понял, в вышеуказанном примере, я должен сделать буквально следующие:
В чём ошибка?! |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Она и так не примет. |
|||
|
||||
| kleks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 6.10.2005 Репутация: нет Всего: нет |
Действительно..., а почему тогда если в гл. программе я сам ввожу заданную строку, например так:
То программа принемает это число (например "546 465")!!! Подскажите пожалуйста, что не так!!! |
|||
|
||||
| bel_nikita |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Усложним задачку
Добавлено @ 20:14 kleks
|
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |