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

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

Войти
Регистрация
Восстановить пароль
 
Ivan-K
1 / 1 / 1
Регистрация: 12.11.2015
Сообщений: 11
#1

Определение символов - C++

12.11.2015, 09:24. Просмотров 711. Ответов 9
Метки нет (Все метки)

Всем, доброго времени суток. Недавно начал изучать c++, задали такую задачу:
"Пользователь вводит с клавиатуры символ. Определить, какой это символ: Буква, цифра, знак препинания или другое."
Подсобите с тем, в каком направлении двигаться) прошли только ветвления.
То как думаю, должно быть вида
C++
1
2
3
4
5
char x;
cin >> x;
if ( x == 'вот здесь что?') {
cout << "буква, цифра, знак или что другое"}
else if (x == 'ну дальше подобным образом'{}
Как сделать проверку на букву, знак и т.д.?
есть подозрение, что при помощи таблицы с char, но это всю таблицу перебивать
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2015, 09:24     Определение символов
Посмотрите здесь:

C++ Определение минимального количества первых символов, по которым можно различать слова с заданного текста
определение сколько символов/чисел в массиве C++
C++ Определение количества символов в тексте
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. C++
Определение в строке количества слов длиннее четырёх символов C++
Найти количество символов в самой длинной цепочке из одинаковых символов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4776 / 4114 / 1376
Регистрация: 14.04.2014
Сообщений: 16,147
12.11.2015, 09:32     Определение символов #2
isdigit() - цифры, isalpha() - буквы, ispunct() - знаки препинания.
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 422
12.11.2015, 09:32     Определение символов #3
Ascii?
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,813
Завершенные тесты: 1
12.11.2015, 09:33     Определение символов #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
unsigned char x;
cin >> x;
if(x>='0' && x<='9')
   cout<<"цифра";
else if(x>='A' && x<='Z')
  cout<<cout << "Английская заглавная буква";
else if(x>='a' && x<='z')
  cout<<cout << "Английская строчная буква";
else if(x>='А' && x<='Я' || x=='Ё')
  cout<<cout << "Русская заглавная буква";
else if(x>='а' && x<='я' || x=='ё')
  cout<<cout << "Русская строчная буква";
else
   cout<<"Знак";
З.ы. Для русских букв нужно дополнительно выполнить перекодировку из кодовой таблицы 866 в 1251
Kerry_Jr
Модератор
Эксперт PHP
2130 / 1926 / 670
Регистрация: 14.05.2014
Сообщений: 5,636
Записей в блоге: 1
Завершенные тесты: 5
12.11.2015, 09:35     Определение символов #5
Ivan-K, проверка на букву isalpha(char), на цифру - isdigit(char), пробельный символ (пробел, таб, новая строка) - isspace(char), знаки препинания - ispunct(char). Для этих функций нужно
C++
1
#include <cctype>
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 422
12.11.2015, 09:36     Определение символов #6
Цитата Сообщение от Ivan-K Посмотреть сообщение
if ( x == 'вот здесь что?')
if ( x == 'Здесть тот символ который надо нажать для вывода сообщения') Например if ( x == 'q') если введёшь q то выйдет сообщение
Ivan-K
1 / 1 / 1
Регистрация: 12.11.2015
Сообщений: 11
12.11.2015, 10:47  [ТС]     Определение символов #7
Спасибо, за ответы) Пошел пробовать))

Добавлено через 58 минут
С библиотекой <cctype> нельзя работать, только с тем что прошли)
zss - хотел подсказку дали решение) Для русских букв русскую локаль подключил setlocale(LC_ALL, "RUSSIAN");
У себя поставил один cout, но другие (имею ввиду другие задания) подчеркнулись, как ошибка, но все работает)
В Вашем, ответе оператор cout идет подряд, почему?

Добавлено через 8 минут
Все же не все работает, при вводе русских букв, выдает, что это знак. Следовательно вопрос про перекодировку) Как из кодировки 866 в 1251? И что значит оператор cout - неоднозначный? Задание, конечно, выполнено, но хотелось бы понимать, что делаю, а не копипастить. Все равно, всем, спасибо)

Добавлено через 2 минуты
Ну и код, немного переписанный)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    unsigned char simvol;
    cout <<"Введите символ: ";
    cin >> simvol;
    if (simvol >= '0' && simvol <= '9') {
        cout <<"Это цифра" << endl;
    }
    else if (simvol >= 'A' && simvol <= 'Z') {
        cout <<"Это заглавная буква латинского алфавита" << endl;
    }
    else if (simvol >= 'a' && simvol <= 'z') {
        cout <<"Это строчная буква латинского алфавита" << endl;
    }
    else if (simvol >= 'А' && simvol <= 'Я' || simvol == 'Ё' ) {
        cout <<"Это заглавная буква русского алфавита" << endl;
    }
    else if (simvol >= 'а' && simvol <= 'я' || simvol == 'ё') {
        cout <<"Это строчная буква русского алфавита" << endl;
    }
    else 
        cout << "Это знак" << endl;
gru74ik
Модератор
Эксперт CЭксперт С++
3899 / 1657 / 188
Регистрация: 20.02.2013
Сообщений: 4,719
Записей в блоге: 21
12.11.2015, 13:14     Определение символов #8
del
nmcf
4776 / 4114 / 1376
Регистрация: 14.04.2014
Сообщений: 16,147
12.11.2015, 14:52     Определение символов #9
Цитата Сообщение от Ivan-K Посмотреть сообщение
С библиотекой <cctype> нельзя работать, только с тем что прошли
Её как-то по особому "пройти" должны?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2015, 16:22     Определение символов
Еще ссылки по теме:

Ошибка ввода символов строки, при количестве символов кратных 8 C++
C++ Определение процентного содержания символов в текстовом файле
C++ Как настроить ввод русских символов и в дальнейшем вывод этих символов
C++ В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом
Введите массив символов из 12 элементов. Удвоить все коды символов массива C++

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

Или воспользуйтесь поиском по форуму:
Ivan-K
1 / 1 / 1
Регистрация: 12.11.2015
Сообщений: 11
12.11.2015, 16:22  [ТС]     Определение символов #10
Не, сказали пользоваться теми средствами, которые изучили. А о <cctype> я просто, даже и не знал)
Yandex
Объявления
12.11.2015, 16:22     Определение символов
Ответ Создать тему
Опции темы

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