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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 5.00
xboltik
Сообщений: n/a
#1

Определить номера букв русского алфавита - C++

05.10.2011, 02:44. Просмотров 3931. Ответов 7
Метки нет (Все метки)

Добрый день. Суть вопроса: нужно для заданной строки определить номера букв русского алфавита. Немного погуглив, узнал, что это можно сделать через ASCII код. Но как именно не разобрался, т.к. знания в си++ еще невысокие. Подскажите пожалуйста, как это можно осуществить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 02:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить номера букв русского алфавита (C++):

Генератор паролей: 6 случайных букв русского алфавита - C++
Реализовать на языке программирования С программу, реализующую генератор паролей. необходимо чтобы программа выдавала 6 случайных букв...

Подсчитать количество букв русского алфавита из файла .txt - C++
Задача: Осуществить подсчет количества разных букв русского алфавита ("а", "б", ...) в текстовом файле .txt. Результаты вывести в...

Найти в тексте все слова с наибольшим количеством гласных букв русского алфавита - C++
Дан текст. Найти в нем все слова с наибольшим количеством гласных букв русского алфавита. Кто может помочь с решением этой задачи?

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

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

Определить длину содержащейся в тексте максимальной серии символов, отличных от букв латинского алфавита - C++
1.Текст – это непустая последовательность букв. Дан текст. Определить длину содержащейся в тексте максимальной серии символов, отличных от...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
05.10.2011, 03:39 #2
C++
1
2
char x = 'd';
std::cout << (int) x;
-=ЮрА=-
Заблокирован
Автор FAQ
05.10.2011, 10:06 #3
Цитата Сообщение от xboltik Посмотреть сообщение
Немного погуглив, узнал, что это можно сделать через ASCII код. Но как именно не разобрался, т.к. знания в си++ еще невысокие.
- код ниже выводит коды русских символов, думаю припаять к поиску символов в строке труда не составит.
PS:Консоль руссифицировал с помощью SetConsoleOutputCP чтобы на экран не выводились каракули измени в свойствах приложения шрифт консоли на Lusinda Console 12 (см миниатюру)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>//SetConsoleOutputCP
#include <iostream>
#include <conio.h>  //getch
using namespace std;
 
int main()
{
    SetConsoleOutputCP(1251);//Простая руссификация консоли
    unsigned char RUS[] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
    //Определили длинну строки
    long i,sLen = sizeof(RUS)/sizeof(RUS[0]);
    std::cout<<"\tКоды русских символов\r\n";
    for(i = 0; i < sLen; i++)
        std::cout<<RUS[i]<<" - "<<(int)RUS[i]<<"\r\n";
    std::cout<<"Нажмите любую клавишу для продолжения\r\n";
    getch();
    return 0;
}
Миниатюры
Определить номера букв русского алфавита   Определить номера букв русского алфавита  
-=ЮрА=-
Заблокирован
Автор FAQ
05.10.2011, 10:57 #4
Решил всё же полностью добить задание, вот простенький код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <conio.h>  //getch
using namespace std;
 
bool isRus(unsigned char ch);//Проверяем является ли ch символом русской кодировки
int main()
{
    std::cout<<"Enter input string\r\n";
    char str[1024];
    std::cin.getline(str,1024);
    long i = 0;
    std::cout<<"\tPosition of russian symbols\r\n";
    //Обрати внимание как можно проверять условие окончания строки
    while((str + i)[0] != '\0')
    {
        //При вызове isRus преобразую char str[i] в unsigned char
        if(isRus(str[i]))
            std::cout<<i + 1<<" - "<<str[i]<<"\r\n";
        i++;
    }
    std::cout<<"Press any key to continue\r\n";
    getch();
    return 0;
}
 
bool isRus(unsigned char ch)
{
    bool ret = false;
    if(127 < ch)//Простенькая проверка (все RUS имеют код больше 127)
        ret = true;
    return ret;
}
Миниатюры
Определить номера букв русского алфавита  
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:05 #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
C++
1
2
//Обрати внимание как можно проверять условие окончания строки
* * * * while((str + i)[0] != '\0')
о_0
*(str+i) != '\0'
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.10.2011, 11:14 #6
Или просто
C++
1
while( str[i] ) ...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
05.10.2011, 11:17 #7
C++
1
2
3
4
bool isRus(unsigned char ch)
{
      return 127 < ch;
}
.)
xboltik
Сообщений: n/a
05.10.2011, 22:12 #8
-=ЮрА=, спасибо, разобрался.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 22:12
Привет! Вот еще темы с ответами:

Корректный вывод русского алфавита - C++
Народ, подскажите, как решить проблему. Ввожу данные с клавиатуры, а при их выводе русским языком уже не пишет: #include &quot;stdafx.h&quot; ...

Сортировка русского алфавита с буквой ё - C++
Здравствуйте, помогите, пожалуйста, реализовать программу сортировки слов рус. алфавита с буквой ё. вот то, что уже сделал: char arr; ...

Преобразовать буквы русского алфавита в латинские - C++
Написать программу, которая во введенной с клавиатуры строке преобразует буквы русского алфавита в латинские.

Создать массив состоящий из русского алфавита - C++
Доброго всем здравия, для программы дешифрования нужно создать массив из русских букв. Посидел часа 2, начинаю тупить. Может кто-нибудь с...


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

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

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