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

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

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

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

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

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

Определение количества символов в тексте - C++
Во входном файле text.txt содержится текст на английском языке. Требуется написать программу, которая будет определять и выводить на...

определение сколько символов/чисел в массиве - C++
сабж. как определить сколько в введёном массиве всего символов/букв/абрыкадабры те вводит пользователь: 1214№&quot;;&quot;№АВЫАУ;fds программа...

Определение процентного содержания символов в текстовом файле - C++
Написал программу для определения процентного содержания символов в текстовом файле. Решил проверить правильность ввода символов в массив....

Определение в строке количества слов длиннее четырёх символов - C++
Помогите с решением контрольных на C++. Пожалуйста. 2. Разработать программу, которая определяет в строке количество слов длиннее...

Определение минимального количества первых символов, по которым можно различать слова с заданного текста - C++
Разработать алгоритм и программу для определения минимального количества первых символов, по которым можно различать слова с заданного...

Введите массив символов из 12 элементов. Удвоить все коды символов массива - C++
Условие :Введите массив символов из 12 элементов. Удвоить все коды символов массива. Заранее спасибо )

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
12.11.2015, 09:32 #2
isdigit() - цифры, isalpha() - буквы, ispunct() - знаки препинания.
1
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 430
12.11.2015, 09:32 #3
Ascii?
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 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
1
Kerry_Jr
Модератор
Эксперт PHP
2192 / 1988 / 696
Регистрация: 14.05.2014
Сообщений: 5,821
Записей в блоге: 1
Завершенные тесты: 5
12.11.2015, 09:35 #5
Ivan-K, проверка на букву isalpha(char), на цифру - isdigit(char), пробельный символ (пробел, таб, новая строка) - isspace(char), знаки препинания - ispunct(char). Для этих функций нужно
C++
1
#include <cctype>
1
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 430
12.11.2015, 09:36 #6
Цитата Сообщение от Ivan-K Посмотреть сообщение
if ( x == 'вот здесь что?')
if ( x == 'Здесть тот символ который надо нажать для вывода сообщения') Например if ( x == 'q') если введёшь q то выйдет сообщение
0
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;
0
gru74ik
Модератор
Эксперт CЭксперт С++
4178 / 1806 / 197
Регистрация: 20.02.2013
Сообщений: 4,943
Записей в блоге: 21
12.11.2015, 13:14 #8
del
0
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
12.11.2015, 14:52 #9
Цитата Сообщение от Ivan-K Посмотреть сообщение
С библиотекой <cctype> нельзя работать, только с тем что прошли
Её как-то по особому "пройти" должны?
0
Ivan-K
1 / 1 / 1
Регистрация: 12.11.2015
Сообщений: 11
12.11.2015, 16:22  [ТС] #10
Не, сказали пользоваться теми средствами, которые изучили. А о <cctype> я просто, даже и не знал)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2015, 16:22
Привет! Вот еще темы с ответами:

Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку - C++
Здравствуйте. Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку. Как такую программу сделать? Заранее спасибо за...

Как настроить ввод русских символов и в дальнейшем вывод этих символов - C++
Подскажите как в этом коде настроить ввод русских символов и в дальнейшем вывод этих символов. Данный код выводит лишь всякую ерунду место...

Ошибка ввода символов строки, при количестве символов кратных 8 - C++
Здравствуйте, уважаемые форумчане! Разбираясь с механизмом ввода и динамическим выделением памяти для строк решил написать такой...

Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. - C++
Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/...


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

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

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