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

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

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

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

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

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

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

Определить, что было введено — знак, цифра, заглавная или прописная буква - C++
Здравствуйте. Вот программа показывает буква введена или цифра . Помогите сделать что-бы она ещё и выдавала : заглавная ли введена буква...

Буква или цифра? - C++
Как на с++ определить вводится буква или цифра? пробывал так : while(n<0 && n>9) cin>>n;

Определить порядковый номер введенного символа - C++
Здраствуйте.Помогите кому не тяжело.Задача такая: Ввести любой символ и определить его порядковый номер, а также указать...

Определить остаток от деления кода введенного символа на число - C++
Помогите решить задачи на С++. Ввести символ и целое число. Определить остаток от деления кода введенного символа на число.

Определить тип символа - C++
С клавиатуры вводится символ С. Напечатать y="Это буква",если С-буква. y="Это цифра",если С-цифра. y="Это не цифра и не буква",если...

13
Croessmah
11.07.2013, 11:53
  #2

Не по теме:

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

1
Thinker
11.07.2013, 12:05
  #3

Не по теме:

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

0
Atma24
4 / 4 / 2
Регистрация: 27.06.2013
Сообщений: 80
11.07.2013, 12:09 #4
Мне лично бы не помешало узнать как именно организовать этот процесс , с выявлением цифр и букв в массиве
0
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";
0
golatin
268 / 225 / 44
Регистрация: 12.10.2011
Сообщений: 340
Завершенные тесты: 1
11.07.2013, 12:43 #6
Для цифр можна использовать функцию isdigit()
Тогда уж так, использовать встроенные функции не спортивно
C++
1
2
 unsigned char C='2';
 if(!((C>>4)^3))std::cout<<"Digit";
0
SatanaXIII
Супер-модератор
Эксперт С++
5638 / 2673 / 252
Регистрация: 01.11.2011
Сообщений: 6,570
Завершенные тесты: 1
11.07.2013, 12:50 #7
Цитата Сообщение от Valentina Посмотреть сообщение
Для цифр можна использовать функцию isdigit()
Ну и до кучи isalnum(), isascii()... И там их на любой вкус.

А лучше наверное все же по коду символа смотреть в интервал чего он попадает:
C++
1
2
for(int i=48; i<=57; i++)
  cout << (char)i;
0
Thinker
Эксперт С++
4228 / 2202 / 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";
не спортивно символ ':' цифрой считать
1
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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;
}
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";
0
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
11.07.2013, 14:38 #11
Это русская буква в кодировке OEM866
0
Stereotip
2 / 2 / 0
Регистрация: 17.04.2012
Сообщений: 22
11.07.2013, 16:10 #12
А почему именно в этой кодировке и почему оно тогда не работает??
0
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
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');
}
0
25.12.2013, 16:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 16:45
Привет! Вот еще темы с ответами:

В зависимости от введенного числа определить его тип и провести дальнейшие действия с ним - C++
Не знаю, правильно или нет выразился.... В общем, нужно ввести переменную(число), в зависимости от введенного числа определить его тип...

Если символ — русская гласная буква, то заменить в нем младший бит единицей - C++
Собственно, совсем не получается выполнить следующее задание: Ввести последовательность из 8 символов. Если символ - русская гласная...

Если символ — русская гласная буква, то заменить в нем младший бит единицей - C++
Ввести последовательность из 8 символов. Если символ - русская гласная буква, то заменить в нем младший бит единицей, иначе - заменить 2-й...

Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. - C++
Помогите,плиз... Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая,...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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