Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2010, 18:17   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию atoi("2qweqwe") возвращает 2, а не 0

Как быть? Проверять строку на цифры? Или есть другая функция?
Как проверить что в строке А только цифры, точки и запятые. Кроме такого
for (i=0; i<strlen(A); ii) if (A[i]>='0'&&A[i]<='9'||A[i]=='.'||A[i]==',') ...
TwiX вне форума Ответить с цитированием
Старый 29.10.2010, 18:38   #2
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

TwiX в таких случаях используют регулярные выражения, а регулярные выражения строят конечный автомат, вывод, вам никуда не уйти от множественных проверок строки на нужное для вас условие.
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Старый 29.10.2010, 18:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Кроме такого
А чем не устраивает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2010, 18:47   #4
guz
Пользователь
 
Регистрация: 29.10.2010
Сообщений: 29
По умолчанию

макросы типа isdigit(), isalpha(), isnum(), ...
но они Вам не нужны, просто ваша atoi это скорее всего
#define atoi(x) strtol((x), 0, 0)

используйте
long int strtol(const char *nptr, char **endptr, int base);

а вообще читайте API Reference библиотек, которые используете и файлы заголовков
guz вне форума Ответить с цитированием
Старый 29.10.2010, 21:34   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Stilet, а если там куча знаков? Надо как-то так: if A[i] in "1234567890,." ...

strtol появилась позже.... И atoi не дефайн (в D2010 по крайней мере)
TwiX вне форума Ответить с цитированием
Старый 29.10.2010, 21:34   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Stilet, а если там куча знаков? Надо как-то так: if A[i] in "1234567890,." ...

strtol появилась позже.... И atoi не дефайн (в D2010 по крайней мере)
TwiX вне форума Ответить с цитированием
Старый 29.10.2010, 21:57   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну циклом прогонись и не парься.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.10.2010, 23:16   #8
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Функция какая-то было, точно помню :D
TwiX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50