|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.06.2011, 14:56 | #1 |
Пользователь
Регистрация: 13.06.2011
Сообщений: 17
|
Траслитерация
Добрый день.
Столкнулся с идеей транслитерации с кирилицы в латиницу. Но понятия не имею как это делается. Есть кто уже знакомый стаким. Можете подсказать идею того как это делается? |
24.06.2011, 07:03 | #3 | |
Пользователь
Регистрация: 13.06.2011
Сообщений: 17
|
Цитата:
Вот теперь встал перед другой проблемой, нужно создать двумерный символьный массив и забить его вручную. Массив создал, а вот вручную забить не получается, чет понять не могу что ему не нравится... char engArr [2][33] = {{"a","b","v","g","d","e","yo","zh" ,"z","i","y", "k","l","m","n","o","p","r","s","t" ,"u","f", "kh","ts","ch","sh","shch","''","y" ,"'","e","yu","ya"}, {"A","B","V","G","D","E","Yo","Zh", "Z","I","Y", "K","L","M","N","O","P","R","S","T" ,"U","F", "Kh","Ts","Ch","Sh","Shch","''","Y" ,"'","E","Yu","Ya"}}; |
|
24.06.2011, 07:28 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Зачем Вы используете тип char? Во-первых это однобайтный тип. Во-вторых, ним можно закодировать только латиницу.
Используйте тип string. Например так: Код:
Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
24.06.2011, 08:02 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
string, на том же char основан. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.06.2011, 08:33 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Основан. Но не тождественнен.
Это всё равно что сказать - дом основан на кирпичах. В string используется кодировка Юникод. В частности UTF-8. http://ru.wikipedia.org/wiki/%D0%AE%...BA%D0%BE%D0%B4 Работать с ним гораздо удобнее чем с char. http://msdn.microsoft.com/ru-ru/libr...em.string.aspx
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 24.06.2011 в 08:39. |
24.06.2011, 09:28 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Пепел Феникса, +1
Цитата:
по вашему, если Unicode нет - то кириллица не поддерживается? Т.е. в DOSских программах/Win9x кириллицы вообще не было, так?! и Delphi до версии 2009 тоже строки с кириллицей принимала, так по вашему?! ответ. Это не так! обычный однобайтовый Char может хранить значения от 0 до 255. Туда помещается как латиница, так и кириллица.. (ну, разумеется, в определённой кодовой таблице - что определяется условиями использования программы). |
|
24.06.2011, 09:30 | #8 |
C++
Форумчанин
Регистрация: 27.03.2011
Сообщений: 803
|
Smitt&Wesson, std::string - это инстанцирование шаблона std::basic_string типом char, что к Unicode имеет отношение чуть более, чем никакое.
Автору советую использовать словарь (std::map), в данной ситуации это весьма удобно. Ищете информацию по C++?
cplusplus.com |
24.06.2011, 09:39 | #9 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
если б в винде оно так же работало, это был бы ужас, ибо вечно перекодировать чуть-что. кодировка будет зависить от того как вы внесли данные(в какой кодировке), string не телепат, и не знает в какой кодировке данные ей вносят, про char* ей известна лишь длина(по терминальному символу) а терминал винды по умолчанию ждет 866 кодировку. а вот wstring уже юникод(или как минимум не полноценный UCS2) ну по крайней мере поидее использовать не по назначению никто не мешает. ссылка на System.String вообще не уместна, это dotNET. да и ссылка на юникод тоже не нужна, отлично знаю что это такое. кстати, ошибка ТС в том что тип массива задан неверно, ему надо или массив std::string(про удобство соглашусь) или же char* Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 24.06.2011 в 09:42. |
|
24.06.2011, 09:43 | #10 | |
C++
Форумчанин
Регистрация: 27.03.2011
Сообщений: 803
|
Цитата:
Ищете информацию по C++?
cplusplus.com |
|