Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Англиское слово ввели русскими буквами. преобразовать его в англискую строку. 
V
    Опции темы
andrew_121
Дата 23.2.2009, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Дарова!
Мужики - С праздником!
...оставайтесь мужиками!

И так, к делу.

Допустим пользователь ввел английскую строку русскими буквами.
пщщпдуюкг - это google.ru Как такое сделать?




--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Lazin
Дата 23.2.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



простая замена, что тут сложного?
в простейшем случае(не юникод):
Код

char char_map[0x100];
char_map['ф'] = 'a';
...
char str = ...;
p = str;
while(p)
{
   *p = char_map[*p];
     p++;
}

сложнее определить что слово набрано в неверной раскладке, для этого видимо придется использовать статистические методы

Это сообщение отредактировал(а) Lazin - 23.2.2009, 12:50
PM MAIL Skype GTalk   Вверх
rMaveric
Дата 23.2.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: нет
Всего: 6



Полностью согласен с 
Lazin, но больше проблем создает вопрос как определить ошибка это или пользователь знал, что он вводит.

Или задача подразумевает, что пользователю тезнически не нужны русские символы при вводе? Так тогда почему его не ограничить еще на этапе ввода?

Но если тебе нужно реализовать что-то наподобии яндексовских "Быть может, вы искали: ", то тебе еще потребуется сравнивать со множеством возможных вариантов.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
Soah
Дата 23.2.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: нет
Всего: 54



Как-нибудь так
Код

char rus[] = "абркд";
char en[] = "abrcd";

char strRus[] = "Hello абракадабра URA";
char* pStrRus = strRus;
char strEn[30] = "";

char* ptr;
char temp[2];
char ch;

while (*pStrRus) {
    ch = pStrRus[0];

    if(ptr = strchr(rus, ch)) {
        temp[0] = en[ptr-rus];
        temp[1] = '\0';
        strcat(strEn, temp);
    }
    else 
        strncat(strEn, pStrRus, 1);

    ++pStrRus;
}

printf("%s", strEn);

PM MAIL   Вверх
cutwater
Дата 23.2.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(rMaveric @  23.2.2009,  11:56 Найти цитируемый пост)
Полностью согласен с 
Lazin, но больше проблем создает вопрос как определить ошибка это или пользователь знал, что он вводит.


В русском или английском языках так же встречаются редкие или невозможные сочетания символов. На этом принципе так же строится статистический анализ.
На этот счет можно найти сорцы какого нибудь открытого аналога PuntoSwitcher и посмотреть.


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.