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

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

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

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

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

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

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

Определить тип передаваемой в функцию переменной - C++
Добрый день! Подскажите как правильно объявить переменную elem, которая передаётся в функцию. Выводит ошибку. Менял типы передаваемых...

Определить тип переменной. Динамический анализ - C++
Заранее прошу прощения если что то сделаю не так, это мое первое сообщение Мне нужно определить какой тип имеет переменная, а именно...

Преобразования типов. Определить тип переменной - C++
Всем привет Недавно начал изучать язык C++ по книжке "Объектно-ориентированное программирование в C++" и там есть тема (Преобразование...

Как вывести тип переменной? - C++
Необходимо, чтобы функция возвращала тип переменной. т.е. typename function(type) { return type; }

Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR? - C++
Вроде давно занимаюсь программированием на С++, но встала проблема... Есть некий массив переменных имеющих 8 битный размер... без знака...

Как определить тип файла? - C++
Хочу написать программу, которая из кучи различных файлов в папке удаляет файлы определённого типа, но вот проблема возникла, не знаю как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
22.03.2010, 14:13 #2
isdigit работает с char, а в остальном вопрос не очень понятен.
Monte-Cristo
2788 / 1374 / 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
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
22.03.2010, 20:52  [ТС] #4
например
char a[100];
cin >>a;
буквы или цифры ввел юзер и мож вообще спецсимволы..
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
17627 / 5851 / 376
Регистрация: 30.03.2009
Сообщений: 16,138
Записей в блоге: 26
23.03.2010, 13:04 #6
Цитата Сообщение от Krist_ALL Посмотреть сообщение
например
char a[100];
cin >>a;
буквы или цифры ввел юзер и мож вообще спецсимволы..
У тебя переменная a всегда имеет тип "массив char'ов". Независимо от того, что ввёл пользователь (ибо это уже содержимое массива, но никак не его тип). Единственный способ узнать, что тебе ввёл пользователь - побайтно проанализировать введёную строку. Ты лучше более конкретно вопрос задай: чего ты в конечном итоге хочешь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2010, 13:04
Привет! Вот еще темы с ответами:

Как определить тип вектора в c++ - C++
здравствуйте, нужно создать псевдоним типа для упрощения записи, например есть массив vector &lt;vector &lt;int&gt; &gt; m(11) и нужно, чтобы он...

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

Как правильно определить тип функции и ее аргументы? - C++
По заданию нужно вынести каждое действие в функции, у меня с ними не лады (:wall:) Вот приведу пример моей первой функции TCHAR...

Как определить тип данных потока istream - C++
создал класс, перегрузил оператор ввода istream &amp; operator &gt;&gt;(istream&amp; in, Stack&amp; cl){ } дальше нужно передать данные в нужную...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.03.2010, 13:04
Ответ Создать тему
Опции темы

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