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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.64
Vernblum
0 / 0 / 0
Регистрация: 10.07.2013
Сообщений: 6
#1

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

11.07.2013, 11:44. Просмотров 5632. Ответов 13
Метки нет (Все метки)

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

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

Не по теме:

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

Thinker
11.07.2013, 12:05
  #3

Не по теме:

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

Atma24
4 / 4 / 2
Регистрация: 27.06.2013
Сообщений: 71
11.07.2013, 12:09     Определить тип введенного символа (цифра, русская или английская буква) #4
Мне лично бы не помешало узнать как именно организовать этот процесс , с выявлением цифр и букв в массиве
Valentina
68 / 68 / 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
265 / 222 / 43
Регистрация: 12.10.2011
Сообщений: 323
Завершенные тесты: 1
11.07.2013, 12:43     Определить тип введенного символа (цифра, русская или английская буква) #6
Для цифр можна использовать функцию isdigit()
Тогда уж так, использовать встроенные функции не спортивно
C++
1
2
 unsigned char C='2';
 if(!((C>>4)^3))std::cout<<"Digit";
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 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++
4220 / 2194 / 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
1636 / 1264 / 129
Регистрация: 21.12.2010
Сообщений: 1,925
Записей в блоге: 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
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
1636 / 1264 / 129
Регистрация: 21.12.2010
Сообщений: 1,925
Записей в блоге: 7
11.07.2013, 14:38     Определить тип введенного символа (цифра, русская или английская буква) #11
Это русская буква в кодировке OEM866
Stereotip
2 / 2 / 0
Регистрация: 17.04.2012
Сообщений: 22
11.07.2013, 16:10     Определить тип введенного символа (цифра, русская или английская буква) #12
А почему именно в этой кодировке и почему оно тогда не работает??
igorrr37
1636 / 1264 / 129
Регистрация: 21.12.2010
Сообщений: 1,925
Записей в блоге: 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++ Определить порядковый номер введенного символа
Определить тип введенного символа C++
C++ Определить остаток от деления кода введенного символа на число

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
6671 / 3852 / 509
Регистрация: 29.11.2010
Сообщений: 10,209
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     Определить тип введенного символа (цифра, русская или английская буква)
Ответ Создать тему
Опции темы

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