Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2010, 21:29   #1
tema93
 
Регистрация: 10.11.2010
Сообщений: 7
По умолчанию Сделать транслитерацию другим способом

Доброго времени суток . Код транслитерации написал, но он не работает .Подскажите в чем ошибка и как можно другим способом ( вроде можно через массив символов, но как - не знаю). Заранее спасибо
Код:
int main()
{       
         char str[20];
         int n; 
                    cout<<"vvedi stroky dlinoy ot 5 do 20 simvolov"<<endl;
                    cin.getline(str,sizeof(str));
                    n=strlen(str);
                    cout<<'\n'<<str<<endl;
                             for (int i=0; i<n;i++)
                           
                             switch (str1[i]) 
                               {
                                 
                case 'а': str1[i]='a'; break;
                case 'б': str1[i]='b'; break;
                case 'в': str1[i]='v'; break;
                case 'г': str1[i]='g'; break;
                case 'д': str1[i]='d'; break;
                case 'е': str1[i]='e'; break;
                case 'ё': str1[i]='ye'; break;
                case 'ж': str1[i]='zh'; break;
                case 'з': str1[i]='z'; break;
                case 'и': str1[i]='I'; break;
                case 'й': str1[i]='y'; break;
                case 'к': str1[i]='k'; break;
                case 'л': str1[i]='l'; break;
                case 'м': str1[i]='m'; break;
                case 'н': str1[i]='n'; break;
                case 'о': str1[i]='o'; break;
                case 'п': str1[i]='p'; break;
                case 'р': str1[i]='r'; break;
                case 'с': str1[i]='s'; break;
                case 'т': str1[i]='t'; break;
                case 'у': str1[i]='u'; break;
                case 'ф': str1[i]='f'; break;
                case 'х': str1[i]='ch'; break;
                case 'ц': str1[i]='z'; break;
                case 'ч': str1[i]='ch'; break;
                case 'ш': str1[1]='sh'; break;
                case 'щ': str1[i]='ch'; break;
                case 'ъ': str1[i]=''''; break;
                case 'ы': str1[i]='y'; break;
                case 'ь': str1[i]=''''; break;
                case 'э': str1[i]='e'; break;
                case 'ю': str1[i]='yu'; break;
                case 'я': str1[i]='ya'; break;
                case 'А': str1[i]='A'; break;
                case 'Б': str1[i]='B'; break;
                case 'В': str1[i]='V'; break;
                case 'Г': str1[i]='G'; break;
                case 'Д': str1[i]='D'; break;
                case 'Е': str1[i]='E'; break;
                case 'Ё': str1[i]='Ye'; break;
                case 'Ж': str1[i]='Zh'; break;
                case 'З': str1[i]='Z'; break;
                case 'И': str1[i]='I'; break;
                case 'Й': str1[i]='Y'; break;
                case 'К': str1[i]='K'; break;
                case 'Л': str1[i]='L'; break;
                case 'М': str1[i]='M'; break;
                case 'Н': str1[i]='N'; break;
                case 'О': str1[i]='O'; break;
                case 'П': str1[i]='P'; break;
                case 'Р': str1[i]='R'; break;
                case 'С': str1[i]='S'; break;
                case 'Т': str1[i]='T'; break;
                case 'У': str1[i]='U'; break;
                case 'Ф': str1[i]='F'; break;
                case 'Х': str1[i]='Ch'; break;
                case 'Ц': str1[i]='Z'; break;
                case 'Ч': str1[i]='Ch'; break;
                case 'Ш': str1[i]='Sh'; break;
                case 'Щ': str1[i]='Ch'; break;
                case 'Ъ': str1[i]=''''; break;
                case 'Ы': str1[i]='Y'; break;
                case 'Ь': str1[i]=''''; break;
                case 'Э': str1[i]='E'; break;
                case 'Ю': str1[i]='Yu'; break;
                case 'Я': str1[i]='Ya'; break; 
 
                               }

Последний раз редактировалось Stilet; 02.12.2010 в 09:19.
tema93 вне форума Ответить с цитированием
Старый 01.12.2010, 22:12   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Можно так. ток переделать немного нужно...

Код:
#include <iostream>
#include <string>
#include <locale>
#include <map>
//#include<windows.h>
 
std::string Decode(const std::string &rhs);

int main()
{
	std::locale::global(std::locale("Russian"));
	const char *rhs = "ghbdtnghbdtnghbdtn";

	std::cout << Decode(rhs) << std::endl;

	std::cout << 'q' << ':' << char(int('q') + 127) << std::endl;
	return 0;
}


std::string Decode(const std::string &rhs){
	std::map<char, char> map;
	map['q'] = 'й'; map['w'] = 'ц'; map['e'] = 'у';
	map['r'] = 'к'; map['t'] = 'е'; map['y'] = 'н';
	map['u'] = 'г'; map['i'] = 'ш'; map['o'] = 'щ';
	map['p'] = 'з'; map['['] = 'х'; map[']'] = 'ъ';
	map['a'] = 'ф'; map['s'] = 'ы'; map['d'] = 'в';
	map['f'] = 'а'; map['g'] = 'п'; map['h'] = 'р';
	map['j'] = 'о'; map['k'] = 'л'; map['l'] = 'д';
	map[';'] = 'ж'; map['\''] = 'э';map['z'] = 'я';
	map['x'] = 'ч'; map['c'] = 'с'; map['v'] = 'м';
	map['b'] = 'и'; map['n'] = 'т'; map['m'] = 'ь';
	map[','] = 'б'; map['.'] = 'ю'; map['`'] = 'ё';

	std::string::const_iterator i = rhs.begin(),
	e = rhs.end();
	std::string res;
	for(; i != e; ++i) res += map[*i];
	
	return res;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
каким способом сделат... kenta БД в Delphi 9 01.11.2009 09:07
Помогите со способом реализации Airou Общие вопросы Delphi 5 28.04.2008 13:46
Подключение к SQL- серверу программным способом? ][alя БД в Delphi 3 17.12.2007 18:39