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

Определить тип введенного символа (цифра, русская или английская буква) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.64
Vernblum
0 / 0 / 0
Регистрация: 10.07.2013
Сообщений: 6
11.07.2013, 11:44     Определить тип введенного символа (цифра, русская или английская буква) #1
Помогите, пожалуйста, решить программы на си++, если не решу мне хана, заранее спасибо:
Дан символ С, изображающий цифру или букву(латинскую или русскую). Если С изображает цифру, то вывести строку "digit", если латинскую букву - вывести строку "lat", если русскую - вывести строку "rus"(обработка строк).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 11:44     Определить тип введенного символа (цифра, русская или английская буква)
Посмотрите здесь:

C++ Буква или цифра?
Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. C++
Определить, является ли введенная буква с клавиатуры гласной, согласной или латинской C++
Определить, буква гласная или согласная C++
7пасите ! Программа которая показывает что было введено ! Знак,Цифра,Буква , Заглавная или прописная , C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
11.07.2013, 11:53
  #2

Не по теме:

Цитата Сообщение от Vernblum Посмотреть сообщение
если не решу мне хана,
Вам лень даже название для темы сделать соответствующее...

Thinker
11.07.2013, 12:05
  #3

Не по теме:

ТС разместил задачи и свалил, решайте мол, за меня все

Atma24
 Аватар для Atma24
4 / 4 / 2
Регистрация: 27.06.2013
Сообщений: 66
11.07.2013, 12:09     Определить тип введенного символа (цифра, русская или английская буква) #4
Мне лично бы не помешало узнать как именно организовать этот процесс , с выявлением цифр и букв в массиве
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
11.07.2013, 12:29     Определить тип введенного символа (цифра, русская или английская буква) #5
Для цифр можна использовать функцию isdigit()
C++
1
2
3
char s='1';
  if (isdigit(s))
  cout<<"is digit";
golatin
259 / 216 / 38
Регистрация: 12.10.2011
Сообщений: 311
Завершенные тесты: 1
11.07.2013, 12:43     Определить тип введенного символа (цифра, русская или английская буква) #6
Для цифр можна использовать функцию isdigit()
Тогда уж так, использовать встроенные функции не спортивно
C++
1
2
 unsigned char C='2';
 if(!((C>>4)^3))std::cout<<"Digit";
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5437 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
11.07.2013, 12:50     Определить тип введенного символа (цифра, русская или английская буква) #7
Цитата Сообщение от Valentina Посмотреть сообщение
Для цифр можна использовать функцию isdigit()
Ну и до кучи isalnum(), isascii()... И там их на любой вкус.

А лучше наверное все же по коду символа смотреть в интервал чего он попадает:
C++
1
2
for(int i=48; i<=57; i++)
  cout << (char)i;
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.07.2013, 12:51     Определить тип введенного символа (цифра, русская или английская буква) #8
Цитата Сообщение от golatin Посмотреть сообщение
Тогда уж так, использовать встроенные функции не спортивно
C++
1
2
 unsigned char C='2';
 if(!((C>>4)^3))std::cout<<"Digit";
не спортивно символ ':' цифрой считать
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
11.07.2013, 12:55     Определить тип введенного символа (цифра, русская или английская буква) #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cctype>
 
int main()
{
    int c;
    while(true)
    {
        c = std::cin.get();
        std::cin.ignore(100, '\n');
        if(isdigit(c))
            std::cout << "cifra\n";
        else if(isalpha(c))
            std::cout << "letra inglesa\n";
        else if((c >= 0x80 && c <= 0xaf) || (c >= 0xe0 && c <= 0xef) || (c >= 0xf0 && c <= 0xf1))
            std::cout << "letra rusa\n";
        else
            std::cout << "Caramba! " << c << '\n';
    }
    return 0;
}
Stereotip
 Аватар для Stereotip
2 / 2 / 0
Регистрация: 17.04.2012
Сообщений: 22
11.07.2013, 13:31     Определить тип введенного символа (цифра, русская или английская буква) #10
Есть вопрос. У меня при запуске код определяет или english или сразу выдает карамбу. Можно объяснить эту строчку. Буду очень благодарен)
Цитата Сообщение от igorrr37 Посмотреть сообщение
C++
1
2
else if((c >= 0x80 && c <= 0xaf) || (c >= 0xe0 && c <= 0xef) || (c >= 0xf0 && c <= 0xf1))
    std::cout << "letra rusa\n";
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
11.07.2013, 14:38     Определить тип введенного символа (цифра, русская или английская буква) #11
Это русская буква в кодировке OEM866
Stereotip
 Аватар для Stereotip
2 / 2 / 0
Регистрация: 17.04.2012
Сообщений: 22
11.07.2013, 16:10     Определить тип введенного символа (цифра, русская или английская буква) #12
А почему именно в этой кодировке и почему оно тогда не работает??
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
12.07.2013, 09:30     Определить тип введенного символа (цифра, русская или английская буква) #13
именно в этой кодировке - потому что это дефолтная кодировка консоли windows

Добавлено через 14 минут
на VS12 работает, на mingw тоже
Кликните здесь для просмотра всего текста
Код
a
letra inglesa
z
letra inglesa
A
letra inglesa
Z
letra inglesa
а
letra rusa
я
letra rusa
о
letra rusa
ф
letra rusa
А
letra rusa
Я
letra rusa
О
letra rusa
Ф
letra rusa
:
Caramba! 58
1
cifra
9
cifra
0
cifra
.
Caramba! 46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 16:45     Определить тип введенного символа (цифра, русская или английская буква)
Еще ссылки по теме:

C++ Определить, является введенная буква гласной или согласной
C++ В зависимости от введенного числа определить его тип и провести дальнейшие действия с ним
Определить тип символа C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
25.12.2013, 16:45     Определить тип введенного символа (цифра, русская или английская буква) #14
C++
1
2
3
4
5
// является ли символ латиницей
bool is_engl(const wchar_t x)
{
    return (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z');
}
Yandex
Объявления
25.12.2013, 16:45     Определить тип введенного символа (цифра, русская или английская буква)
Ответ Создать тему
Опции темы

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