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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2014, 09:22   #1
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию Работа с русским языком [Visual C++]

Здравствуйте.Подскажите пожалуйста,почему приведенный ниже мною код работает только в случае с латинским алфавитом.

Код:
string england="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!%'()*+,-./0123456789:;<=>?";
string russian="абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ!%'()*+,-./0123456789:;<=>?";
int k = 0, q =3,j=0, new_poz = 0,i=0, eng = 0,len=0,poz=0,rus=0;
	string s;
	setlocale(LC_ALL, "Russian");
....
if (k == 1)
		{
			cout << "=====Введите текст=====" << endl;
			cin >> s;
			eng = england.size();
			len = s.size();
			rus = russian.size();
			for (int i = 0; i < len; i++)
			{
				for (int j = 0; j < rus; j++)
					if (s[i] == russian[j])
						poz = j;
				if (poz <= 26)
				{
					new_poz = (poz + q) % 26;
					s[i] = russian[new_poz];
				}
				if (poz >= 26)
				{
					new_poz = (poz + q) % 52;
					s[i] = russian[new_poz];
				}
				if (poz >= 52)
				{
					new_poz = poz;
					s[i] = russian[new_poz];
				}
			}
				cout << "Зашифрованный текст:" << s << endl;
		}
spectrum988 вне форума Ответить с цитированием
Старый 21.11.2014, 10:27   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А ты под дебаггером прошвырнись по коду и сразу всё поймёшь.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.11.2014, 10:28   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, как минимум, потому что в русском алфавите не 26 букв, как в английском.
А в чём, конкрентно, проявляется то, что код не работает? Какие-то ошибки? Или в чём?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.11.2014, 02:09   #4
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Да,извиняюсь Сергей,что не описал конкретно ситуацию с ошибкой,заменил количество букв алфавита соответственно.
Я ввожу текст:абвгд
Вывод:гггг
Цитата:
min@y™:А ты под дебаггером прошвырнись по коду и сразу всё поймёшь.
Спасибо, буду пробовать.

Последний раз редактировалось spectrum988; 22.11.2014 в 02:23.
spectrum988 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать ЧПУ на сайте с русским языком через .htaccess hon PHP 6 29.03.2013 21:05
стеммер Портера и проблема с русским языком CodeNOT PHP 3 27.02.2013 16:07
Проблема с русским языком Dimazzzzzz Python 0 06.05.2012 18:32
Работа с русским алфавитом 0479 Общие вопросы по Java, Java SE, Kotlin 4 09.11.2010 23:12
Ошибка с русским языком! Liza Общие вопросы Delphi 6 02.04.2009 11:15