Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Iaroslav_sm
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 3
1

Как отличить российские символы от украинских

09.02.2010, 20:31. Просмотров 1351. Ответов 10
Метки нет (Все метки)

Всем доброго вечера.

Задача: пишу программу, которая реализует шифрование символов методом Цезаря, при этом должны поддерживаться английский, российский и украинский алфавиты одновременно.
Суть в том, что я не знаю как отличить российские символы от украинских; например, пользователь ввел такую строку: "абвабв" - первые три символа были введены на украинском, следующие три - на российском. Вопрос: как их отличить? Ведь АSCII-коды у них одинаковы (по уникальным буквам "Ы", "Ї" и т.д. не получится - смотрите выше указанную строку).

Предположим ключ сдвига равен 4. Если эту строку кодировать по российскому алфавиту, то получим сочитание "деёдеё", по украинскому - "ґдеґде".

А ведь нужно получить "ґдедеё". В этом и проблема.

Приношу извинения если такая тема уже где-то есть - не нашел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 20:31
Ответы с готовыми решениями:

Как отличить разыменование от указателя?
люди помогите отличить разыменование от указателя.дайте ссылку ,книгу хот что...

Как отличить буквы от цифр?
Подразумевается ввод символов, а дальше по обстоятельствам.

Как отличить, с какого устройства сделан ввод
Всем привет! Меня мучает вопрос, как отличать устройство, с которого сделан...

Как отличить в программе два интерфейса rs422 от rs458?
Здравствуйте! Подскажите, как отличить в программе два интерфейса rs422 от...

Не получается чтобы он все символы с текста читал и типа счетчика который считает одинаковые символы как один и плюсует их....Как сделать правильно???
#include< stdio.h> #include< conio.h> #include< string.h> #include...

10
insideone
Модератор
Автор FAQ
3659 / 939 / 112
Регистрация: 10.01.2010
Сообщений: 2,524
09.02.2010, 20:35 2
Шифруются как я понимаю данные а не буквы. Если невозможно определить как по значению отличаются символы то нельзя их вообще различать. Возможно вам придется создавать свой массив символов с уникальным индексом и API оси проверять какая раскладка и записывать номер из своего массива в разлии от неё.
0
novi4ok
551 / 504 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.02.2010, 20:38 3
Цитата Сообщение от Iaroslav_sm Посмотреть сообщение
Всем доброго вечера.

Задача: пишу программу, которая реализует шифрование символов методом Цезаря, при этом должны поддерживаться английский, российский и украинский алфавиты одновременно.
Суть в том, что я не знаю как отличить российские символы от украинских; например, пользователь ввел такую строку: "абвабв" - первые три символа были введены на украинском, следующие три - на российском. Вопрос: как их отличить? Ведь АSCII-коды у них одинаковы (по уникальным буквам "Ы", "Ї" и т.д. не получится - смотрите выше указанную строку).
объединить все три алфавита в один и шифровать. в крайнем случае определить русско-украинский алфавит (взять русский за основу, т.к. в нем больше букафф, и добавить і,є,ґ).

Добавлено через 37 секунд
Цитата Сообщение от insideone Посмотреть сообщение
Шифруются как я понимаю данные а не буквы. Если невозможно определить как по значению отличаются символы то нельзя их вообще различать. Возможно вам придется создавать свой массив символов с уникальным индексом и API оси проверять какая раскладка и записывать номер из своего массива в разлии от неё.
метод цезаря - буква заменяется порядковым номером в алфавите (кажется)
0
Iaroslav_sm
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 3
09.02.2010, 21:11  [ТС] 4
Цитата Сообщение от novi4ok Посмотреть сообщение
объединить все три алфавита в один и шифровать.
Хотел, но по заданию нельзя.

Цитата Сообщение от insideone Посмотреть сообщение
создавать свой массив символов с уникальным индексом и API оси проверять какая раскладка
А если текст огромный и раскладка переключалась много раз? Я это уже пробовал, но видать криво, у меня по последнему состоянию раскладки клавиатуры проводилось кодирование а не так как надо.

Цитата Сообщение от novi4ok Посмотреть сообщение
метод цезаря - буква заменяется порядковым номером в алфавите (кажется)
Буква заменяется на букву позиция которой равна позиции первой буквы + ключ сдвига.

insideone, совет дельный, в принципе я пытался сделать так:
0
Вложения
Тип файла: txt программный код.txt (5.2 Кб, 24 просмотров)
insideone
Модератор
Автор FAQ
3659 / 939 / 112
Регистрация: 10.01.2010
Сообщений: 2,524
09.02.2010, 21:33 5
А если текст огромный и раскладка переключалась много раз? Я это уже пробовал, но видать криво, у меня по последнему состоянию раскладки клавиатуры проводилось кодирование а не так как надо.
Даже не знаю что сказать. Суть в том что входящие данные для системы при а русской и украинской одинаковы то тут ничего не поделаешь. Единственное что могу придумать это сделать какую то прослойку позволяющую считывать по 1 символу и можно будет узнать текущую раскладку. Или проводить анализ по тексту что будет трудно и все равно ошибки будут.

Насчет ввода: Допустим 1 раз в 500мс система открывается для чтения. В это время можно ввести символ и узнается раскладка. Если не успели - тыкать ещё. Будет не очень красиво по отношению к тому кто вводит но все же.
0
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
09.02.2010, 21:41 6
Как отличить российские символы от украинских?
Так что в Украине есть клавиатуры с украинским набором?
Если есть, то что ниже можно не читать.

Я вообще не пойму как появилась буква i в украинском языке.
То есть пишешь на кириллице, раз встретилась i и на английскую раскладку переходить надо,
это как то не очень, раскладками тыкать.
0
Iaroslav_sm
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 3
09.02.2010, 22:02  [ТС] 7
Посмотрим, буду по всякому пробовать, как только продвинусь - отпишусь.

Добавлено через 17 минут
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Как отличить российские символы от украинских?
Так что в Украине есть клавиатуры с украинским набором?
Если есть, то что ниже можно не читать.

Я вообще не пойму как появилась буква i в украинском языке.
То есть пишешь на кириллице, раз встретилась i и на английскую раскладку переходить надо,
это как то не очень, раскладками тыкать.

Уважаемый, не передергивайте. Есть четко поставленное преподавателем задание, точка.
Кодируемый текст может состоять из трех языков + спецсимволы и цифры. Анализируем каждый символ на принадлежность к конкретному алфавиту, далее кодируем его (символ) согласно этого алфавита по указанному ключу.

Флуд: "І" - это "Ы" в режиме украинской ракладки. Ничего переключать не надо.
0
DrMcSheen
60 / 61 / 3
Регистрация: 25.05.2009
Сообщений: 521
09.02.2010, 22:09 8
Цитата Сообщение от Iaroslav_sm Посмотреть сообщение
пользователь ввел такую строку: "абвабв" - первые три символа были введены на украинском, следующие три - на российском
Да элементарно!
Кладем справа кусок сала, украинские буквы к нему потянутся:
"абвабв" (САЛО)
0
novi4ok
551 / 504 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.02.2010, 22:40 9
а если бы задание стояло - для трех алфавитов: английского, немецкого и итальянского, как решал бы?

Добавлено через 5 минут
давай-ка слово в слово условие задачи сюда, попробуем понять. может так что-то иное требуется, или мелочь какая-то, на которую ты внимания не обратил.
0
DrMcSheen
60 / 61 / 3
Регистрация: 25.05.2009
Сообщений: 521
09.02.2010, 22:59 10
Шифрование должно вестись "на лету" или нужно обрабатывать полный готовый текст?
если на лету, узнать текущую раскладку нетрудно.
а если уже набранный текст - выбирай любую раскладку, но на весь текст единую.
Цитата Сообщение от Iaroslav_sm Посмотреть сообщение
Ведь АSCII-коды у них одинаковы
и никто не докажет, что ты ошибся. Тем более, что результат декодирования будет верным.
0
novi4ok
551 / 504 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.02.2010, 23:20 11
Цитата Сообщение от DrMcSheen Посмотреть сообщение
Шифрование должно вестись "на лету" или нужно обрабатывать полный готовый текст?
если на лету, узнать текущую раскладку нетрудно.
а если уже набранный текст - выбирай любую раскладку, но на весь текст единую.
и никто не докажет, что ты ошибся. Тем более, что результат декодирования будет верным.
в украинском алфавите, например, пятая буква - "ґ", а в русском - "д" (в украинском "д" - шестая).
если не кодировать "раскладку", то невозможно раскодировать.
например, выберем признак латинского алфавита - 36, русского - 37, украинского - 38, следующего - 39, ...

начинаем кодировать текст по буковкам (не важно из какого потока читаем. первая буква - ascii ?
записали в выходной потом 36 и поехали. едем, пока не встретим букву не из этого набора. имеем три случая: буква типично российская, типично украинская, или общая. в первом случае записали 37 и поехали, во втором - 38, в третьем - по барабану: 37 или 38. и идем пока не встретим букву, выходящую из данного ряда. при расшифровке выглядеть все будут правильно.
0
09.02.2010, 23:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 23:20

Как обрезать эффективно часть строки, составляющую последние символы "/" и следующие за ними символы?
здравствуйте, есть код, обрезающий во входной строке часть составляющую...

Как отличить символы?
Хочу чтобы нельзя было вводить более одного символа ")(/*-+" подряд: ввод...

Как пингануть российские сайты с .рф?
Здравствуйте, как пингануть российские сайты с .рф? Например: ping...


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

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

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