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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 150, средняя оценка - 4.62
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

Как определить тип переменной? - C++

22.03.2010, 13:16. Просмотров 19476. Ответов 5
Метки нет (Все метки)

isdigit тока нашел.
а как узнать char или int или есть типа is_array?

конечно можно все реализовать на перегрузке функции но лучшеб встроенные функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2010, 13:16     Как определить тип переменной?
Посмотрите здесь:

C++ тип переменной
Как определить тип данных? C++
Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR? C++
Тип переменной C++
C++ Преобразования типов. Определить тип переменной
Определить тип передаваемой в функцию переменной C++
C++ Как определить тип данных потока istream
Определить тип переменной. Динамический анализ C++
Как определить тип объекта из таблицы виртуальных методов? C++
C++ Как определить тип файла?
C++ Как определить тип вектора в c++
Как вывести тип переменной? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3030 / 2351 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
22.03.2010, 14:13     Как определить тип переменной? #2
isdigit работает с char, а в остальном вопрос не очень понятен.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
22.03.2010, 14:44     Как определить тип переменной? #3
isdigit() - это не то, что ты ищешь.

Чтобы узнать тип, обычно используется typeid()
не знаю зачем тебе это понадобилос, но советую избегать таких констуркций - они применяются крайне редко.. и с++ довольно так гибок, чтоб избежать их применение в большинстве случаев.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <typeinfo>
using namespace std;
 
class MyClass {};
 
int main()
{
    int t = 5;
    MyClass c;
    
    cout << typeid(t).name() << endl;
    cout << typeid(c).name() << endl;
    
    return 0;
}
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
22.03.2010, 20:52  [ТС]     Как определить тип переменной? #4
например
char a[100];
cin >>a;
буквы или цифры ввел юзер и мож вообще спецсимволы..
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
23.03.2010, 01:29     Как определить тип переменной? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bool characters=true;
int i=0;
while (a[i])
{
     if (!isalpha(a[i++])) characters=false;
}
if (characters) cout << "Digets enterd\n";
bool digits=true;
int i=0;
while (a[i])
{
     if (!isdigit(a[i++])) digits=false;
}
if (digits) cout << "Char enterd\n";
//а можно еще так
bool special=true;
int i=0;
while (a[i])
{
     if (!isalpha("~`!@#$%^&*()':;/?.>,<{[}]|\"",a[i++])) special=false;
}
if (special) cout << "Special symblols enterd\n";
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17188 / 5442 / 337
Регистрация: 30.03.2009
Сообщений: 14,761
Записей в блоге: 26
23.03.2010, 13:04     Как определить тип переменной? #6
Цитата Сообщение от Krist_ALL Посмотреть сообщение
например
char a[100];
cin >>a;
буквы или цифры ввел юзер и мож вообще спецсимволы..
У тебя переменная a всегда имеет тип "массив char'ов". Независимо от того, что ввёл пользователь (ибо это уже содержимое массива, но никак не его тип). Единственный способ узнать, что тебе ввёл пользователь - побайтно проанализировать введёную строку. Ты лучше более конкретно вопрос задай: чего ты в конечном итоге хочешь?
Yandex
Объявления
23.03.2010, 13:04     Как определить тип переменной?
Ответ Создать тему
Опции темы

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