Форум программистов, компьютерный форум CyberForum.ru

Как проверить что в переменной char хранится число? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Tiphon
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
28.01.2014, 16:55     Как проверить что в переменной char хранится число? #1
Т.е. что там использованы только числа от 0 до 9 и нет букв?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
28.01.2014, 18:17     Как проверить что в переменной char хранится число? #21
Цитата Сообщение от alsav22 Посмотреть сообщение
Тем, что в этом решении две строки.
Это ни о чем не говорит. Я тоже могу свернуть код в функцию и будет две строки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
28.01.2014, 18:19     Как проверить что в переменной char хранится число? #22
А как же быстродействие? Насколько знаю, код programina более "строчный", но работать будет быстрее.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
28.01.2014, 18:20     Как проверить что в переменной char хранится число? #23
Цитата Сообщение от alsav22 Посмотреть сообщение
Тем, что в этом решении две строки
Спокойно. Она просто сейчас подведет под то, что мы тут все мыслим шаблонами и не в состоянии принять тот факт, что ее решение рабочее. Какой смысл вестись на провокации.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
28.01.2014, 18:36     Как проверить что в переменной char хранится число? #24
Цитата Сообщение от 0x10
Вам какой из эвристических принципов напомнить?
Что не нужно изобретать велосипед, когда есть решение конкретной задачи? Что при ручном перечислении элементов конечного множества код потенциально опасен в плане возможных опечаток? В противном случае, напомнить о таблице ascii и что числа в ней располагаются последовательно, а потому можно обойтись более компактной конструкцией?

Не по теме:

А почему вас так волнует какие принципы я применяю для решения задачи? Может мне переменные теперь обзывать в соответствии с вашими пожеланиями?


Немного успокою вас, ошибки в моем коде нет, и по функциональности он ничем не отличается от isdigit().
Поэтому ничего более вразумительного, чем два ваших матерных слова, я так и не услышала.
0x10
28.01.2014, 18:38
  #25

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Может мне переменные теперь обзывать в соответствии с вашими пожеланиями?
Пишите как угодно. Не в моих проектах - и ладно.

programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
28.01.2014, 18:40     Как проверить что в переменной char хранится число? #26
дубль
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.01.2014, 18:48     Как проверить что в переменной char хранится число? #27
Цитата Сообщение от programina Посмотреть сообщение
Это ни о чем не говорит. Я тоже могу свернуть код в функцию и будет две строки.
Не будет. От того, что часть кода поместите в функцию, количество строк кода не уменьшится, а увеличится.
Tiphon
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
28.01.2014, 18:48  [ТС]     Как проверить что в переменной char хранится число? #28
Спасибо всем за такое большое внимание к этой теме. Я всего отошёл на час а тут уже 3 страницы.
Я использовал следующую конструкцию, чтобы проверить все символы по указателю на тип char.

C++
1
2
3
4
5
   for (int i = 0; count[i] != '\0'; ++i){
   if ( !isdigit(count[i]) )
   cout << "ÔîðìГ*ГІ ââåäåГ*ûõ Г¤Г*Г*Г*ûõ Г*åêîððåêòåГ*. ÏðîãðГ*ììГ* áóäåò Г§Г*êðûòГ*." << endl;
   return 0;
   }
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
28.01.2014, 18:51     Как проверить что в переменной char хранится число? #29
Tiphon, Со скобками обращайтесь осторожнее:
C++
1
2
3
4
5
6
7
8
9
for (int i = 0; count[i] != '\0'; ++i)
{
   if ( !isdigit(count[i]) )
   {
        cout << "Формат введеных данных некорректен. Программа будет закрыта." << endl;
        system("pause");
        return 0;
    }
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.01.2014, 18:52     Как проверить что в переменной char хранится число? #30
Чтобы не было проблем с русскими символами:
C++
1
if ( !isdigit((unsigned char)(count[i]) )
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
28.01.2014, 18:56     Как проверить что в переменной char хранится число? #31
Цитата Сообщение от 0x10 Посмотреть сообщение

Не по теме:


Пишите как угодно. Не в моих проектах - и ладно.

Вот спасибо! А еще забыла спросить, для отступов пробелы писать или табы? Не уверена, но подозреваю, что пробелы - это говнокод...

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Не будет. От того, что часть кода поместите в функцию, количество строк кода не уменьшится, а увеличится.
А давайте еще подсчитаем сколько строк в #include <ctype.h> , который нужен для isdigit()
alsav22
28.01.2014, 19:02
  #32

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
А давайте еще подсчитаем сколько строк в #include <ctype.h> , который нужен для isdigit()
Зачем? Разговор о том: сколько строк пишет программист. Если решение можно понятно (что важно) записать в две строки, то зачем писать десять, если это дополнительно коду ничего не даёт?

zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
28.01.2014, 19:02     Как проверить что в переменной char хранится число? #33
Цитата Сообщение от programina Посмотреть сообщение
А давайте еще подсчитаем сколько строк в #include <ctype.h>
Вместо этого из интереса проверил размер exe файла.
В обоих случаях одинаковый - 7 Kb.
Tiphon
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 7
28.01.2014, 19:03  [ТС]     Как проверить что в переменной char хранится число? #34
Спасибо
alsav22
28.01.2014, 19:05
  #35

Не по теме:

Цитата Сообщение от zss Посмотреть сообщение
Вместо этого из интереса проверил размер exe файла.
Разговор не об этом.

programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
28.01.2014, 19:08     Как проверить что в переменной char хранится число? #36
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем? Разговор о том: сколько строк пишет программист. Если решение можно понятно (что важно) записать в две строки, то зачем писать десять, если это дополнительно коду ничего не даёт?
Скорость сборки у меня должна быть больше.
alsav22
28.01.2014, 19:09
  #37

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Скорость сборки у меня должна быть больше.
На сколько, в этом коде?

programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
28.01.2014, 19:18     Как проверить что в переменной char хранится число? #38
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


На сколько, в этом коде?

Не могу ответить на ваш вопрос, так как он с подвохом (в этом коде)

Добавлено через 2 минуты
С одной стороны скорость сборки будет выше если проект большой и в нем постоянно используются "велосипеды", а с другой сторны к моему коду не должно быть претензий, потому что ничего другого кроме проверки цифры в нем нет.
alsav22
28.01.2014, 19:28
  #39

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Не могу ответить на ваш вопрос, так как он с подвохом (в этом коде)
Это не подвох. Разговор идёт о конкретном коде. Вы же про него написали, что быстрее собирается?
Цитата Сообщение от programina Посмотреть сообщение
а с другой сторны к моему коду не должно быть претензий, потому что ничего другого кроме проверки цифры в нем нет.
А в коде gromo ещё что-то есть?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 19:46     Как проверить что в переменной char хранится число?
Еще ссылки по теме:

Как проверить массив из char на пустоту? C++
Как присвоить пустой символ переменной char C++
Как проверить, что пользователь ввел число в переменную string? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
programina
28.01.2014, 19:46     Как проверить что в переменной char хранится число?
  #40

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Это не подвох. Разговор идёт о конкретном коде. Вы же про него написали, что быстрее собирается?
я отвечала на ваш пост, где вы пишете о том, что важно сколько пишет программист, но так как программа только проверяет цифру, я подумала что вы имеете ввиду общий случай.
Цитата Сообщение от alsav22 Посмотреть сообщение
А в коде gromo ещё что-то есть?
К коду gromo у меня нет притензий.

Yandex
Объявления
28.01.2014, 19:46     Как проверить что в переменной char хранится число?
Ответ Создать тему
Опции темы

Текущее время: 05:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru