IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Translit'ерация, Русский-> Транслит, C++
DracoLich
сообщение 21 Nov 2008, 17:09
Сообщение #1

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Прошу помощи в написании программы перевода в транслит русских букв на С++. Графический интерфейс отсут., работа только в командном окне. Объем вводимого юзером неограничен (ну, почти).
Может кто-нибудь помочь?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Flashback
сообщение 21 Nov 2008, 17:35
Сообщение #2

Immortal
Сообщений: 1 464
Спасибо сказали: 1194 раза




Жаль, но не могу помочь, так нормально знаю только делфи, но думаю русский в транслит будет не сложно, а транслит в русский сложнее, может я и ошибаюсь.
А зачем ты собираешься делать такую программу, такие же есть и очень многофункциональные, Штирлиц, например.


--------------------
Совсем скоро сайт МутноСофт будет, мб, обновлен.
Статья про защиту icq от взлома одобрена псехом.
И вот идеи для сайтов хорошие очень.
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 22 Nov 2008, 14:11 (Сообщение отредактировал DracoLich - 22 Nov 2008, 14:11)
Сообщение #3

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Вроде как лаба, а я не иучал Си до этого %) Потому и прошу помощи


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Shaidar Haran
сообщение 22 Nov 2008, 18:16
Сообщение #4

Оранжевый Канцлер Тьмы
Сообщений: 2 344
Спасибо сказали: 618 раз




Сделай цикл на каждую введенную юзером букву, обрабатывай ее, и кидай в исходящий поток уже транслированную. Например, нажал юзер букву "ж" на клавиатуре - а твой цикл кинул в куда-там-тебе-надо уже символ "j". И т.п.


--------------------
I am the fury in your eyes. I am reason, I am vice.
Careful what you say
You may regret it,
Careful what you wish
You just might get it.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 22 Nov 2008, 19:19
Сообщение #5

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Можно ли внести введеные символы юзера в массив, если кол-во символов неизвестно?
Как сделать массив динамического размера?
Как получить его длину?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
пусик
сообщение 22 Nov 2008, 19:34
Сообщение #6

полный
Сообщений: 819
Спасибо сказали: 15 раз




Если кодировка koi8, то чтобы транслитерировать русскую букву
нужно отнять от её кода 128.


--------------------
Код
act_say(game, "Я $n!", NULL);
act_say(player, "А по-моему, ты говно!", game);
crash(game);
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 22 Nov 2008, 19:38
Сообщение #7

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




^ спасибо. НО основные вопросы выше


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_Хмм.._*
сообщение 23 Nov 2008, 00:04
Сообщение #8







Цитата(DracoLich @ 22 Nov 2008, 19:19)
Можно ли внести введеные символы юзера в массив, если кол-во символов неизвестно?
Как сделать массив динамического размера?
Как получить его длину?

На каком языке программирования?

Добавлено ([mergetime]1227387814[/mergetime]):
например на делфи
var
A, B: array of Integer;
begin
SetLength(A, 1);


Добавлено ([mergetime]1227387847[/mergetime]):
получить длинну length(A)
Go to the top of the pageAdd Nick
 
+Quote Post
DracoLich
сообщение 23 Nov 2008, 13:35
Сообщение #9

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




ээээ... Кажется, в подзаголовке темы указано C++ biggrin.gif
Код
  char c;
  while (cin.get(c)) cout.put(c);

Точно не пойму, но копирует каждый символ, введеный юзером, затем воспроизводит всю строку. Вопрос - куда идет копирование? о_О.
PS. И как получить ASCII - код буквы?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 24 Nov 2008, 20:36
Сообщение #10

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




по порядку:
1. могу написать прогу если что
2. внести в массив можно
3. динамический:
char *s;
s=new char[n]; // n - максимальная длина строки(массива символов)
4. strlen(s) - возвращает фактическую длину s - строки с завершающим нулем (null-terminated string) (в конце строки символ '\0' - символ с кодом 0)
5. в досе кодировка OEM. там все намного сложнее, так что лучше использовать "таблицу" - массив строк, в котором каждой русской букве соответствует строка англ. букв.
6. твой код не может воспроизводить всю строку подряд, только побуквенно.
7. если тебе надо вывести, то int©, где с - твой символ. если нужно произвести арифметические операции, то в С++ слава богу есть неявное приведение типов.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 8 August 2025 - 05:48
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика