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

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

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

Восстановить пароль

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

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

Прошу помощи,не вижу ошибки,столько всего перепробовал,но ничего не меняется.
Код:
string england="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int q=3;
....
cout << "=====Введите текст=====" << endl;
			cin >> s;
			eng = england.size();
			len = s.size();
			for (int i = 0; i <len; i++)
			{
				for (int j = 0; j < eng; j++)
					if (s[i] == england[j])
							poz = j;
					        if (poz <= 26)
						      x = poz;
					          new_poz = (x + q) % 26;
					          s[i] = england[new_poz];
					        if (poz >= 26)
						        x = poz;
					            new_poz = (x + q) % 52;
					            s[i] = england[new_poz];		
			}
cout << "Зашифрованный текст:"<<s << endl;
Поставил такую задачу,чтобы все символы строки, которые не равны символам в cтроки england просто не брались,а массив переходил к следующему символу строки(для проверки).

Последний раз редактировалось spectrum988; 16.11.2014 в 18:19.
spectrum988 вне форума Ответить с цитированием
Старый 16.11.2014, 18:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отладкой конечно же проходить не стал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2014, 20:02   #3
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Да вообще не получается.Оно же вообще не должно трогать символы,которые не находятся в england;А оно их шифрует предыдущими символами.
Пробовал взять:
Код:
if (s[i] == england[j])
{
poz = j;
							if (islower(s[i]))
							{
								new_poz = (poz + q) % 26;
								s[i] = england[new_poz];
							}
							if (isupper(s[i]))
							{
								new_poz = (poz + q) % 52;
								s[i] = england[new_poz];
							}

}
Когда взял в блок, символы которых нету в england нормально выводит,зато уже не правильно шифрует,а с чего бы это?

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки Visual C++ Alexey03 Visual C++ 0 29.05.2011 18:44
Visual Studio строки CodeNOT Общие вопросы C/C++ 7 24.02.2011 21:43
Строки в Visual С++ Buha.Ivan92 Помощь студентам 0 19.05.2010 20:21
Строки (MS Visual c++) JOFRIF Visual C++ 13 10.07.2009 20:29
Шифровка строки методом смещения кода символов Geddar Общие вопросы Delphi 2 04.02.2009 21:35