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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 5.00
xboltik
Сообщений: n/a
05.10.2011, 02:44     Определить номера букв русского алфавита #1
Добрый день. Суть вопроса: нужно для заданной строки определить номера букв русского алфавита. Немного погуглив, узнал, что это можно сделать через ASCII код. Но как именно не разобрался, т.к. знания в си++ еще невысокие. Подскажите пожалуйста, как это можно осуществить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 02:44     Определить номера букв русского алфавита
Посмотрите здесь:

Найти в тексте все слова с наибольшим количеством гласных букв русского алфавита C++
C++ проверка символа на принадлежность к буквам русского алфавита
C++ Преобразовать буквы русского алфавита в латинские
Подсчитать количество букв русского алфавита из файла .txt C++
Определить длину содержащейся в тексте максимальной серии символов, отличных от букв латинского алфавита C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
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++
 Аватар для Deviaphan
1283 / 1217 / 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
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.10.2011, 11:14     Определить номера букв русского алфавита #6
Или просто
C++
1
while( str[i] ) ...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 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;
}
.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 22:12     Определить номера букв русского алфавита
Еще ссылки по теме:

C++ Сортировка русского алфавита с буквой ё
Корректный вывод русского алфавита C++
Определить, является ли указанный символ гласной буквой русского алфавита C++

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

Или воспользуйтесь поиском по форуму:
xboltik
Сообщений: n/a
05.10.2011, 22:12     Определить номера букв русского алфавита #8
-=ЮрА=, спасибо, разобрался.
Yandex
Объявления
05.10.2011, 22:12     Определить номера букв русского алфавита
Ответ Создать тему
Опции темы

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