Вверх ↑
Этот топик читают: Гость
Ответов: 383
VIKINGS
Designer
#1: 2017-11-29 15:00:55 ЛС | профиль | цитата
Вообщем нужно сделать шифратор по методу Гронсфельда.
Суть программы, мы вводим текст, потом ключ, текст шифруется.

Вообще не понимаю как работает запись символов в чаровский массив, пожалуйста, если кто может, обьясните.

PS: Не думаю что сообщество " Программисты" может помочь, так как последняя активность была 24 февраля.
карма: 39
Честные не лгут, когда не нужно. | Design by Frank
0
Ответов: 1566
TRoN
Не платит за КМ
#2: 2017-11-29 17:31:07 ЛС | профиль | цитата
Frank_Black писал(а):
Вообще не понимаю как работает запись символов в чаровский массив, пожалуйста, если кто может, обьясните.

Самый простой пример:
const int count = 5; // Кол-во елементов
char arr[count]; // инциализация массива

// Цикл для записи в массив
cout ‹‹ "Enter your text: ";
for (int i = 0; i ‹ count; i++)
cin ›› arr[i];

// цикл для вывода из массива
cout ‹‹ endl ‹‹ "Your text: ";
for (int j = 0; j ‹ count; j++)
cout ‹‹ arr[j];
cout ‹‹ endl;

карма: 26
1
Голосовали:Frank_Black
Ответов: 383
VIKINGS
Designer
#3: 2017-11-29 17:56:52 ЛС | профиль | цитата
Tank, а как записать пробел?
Добавил, еще нужно сделать ввод с помощью _getch() для удобства

        cout ‹‹ "Enter your key: ";
for (int x = 0; x ‹ count; x++)
cin ›› key[x];

cout ‹‹ endl ‹‹ "Your text: ";
for (int j = 0; j ‹ count; j++)
cout ‹‹ char(arr[j] + key[j]) ‹‹ " ";
cout ‹‹ endl;
карма: 39
Честные не лгут, когда не нужно. | Design by Frank
0
Ответов: 1566
TRoN
Не платит за КМ
#4: 2017-11-29 18:15:10 ЛС | профиль | цитата
Frank_Black писал(а):
а как записать пробел?

cin.getline(arr, count);

Только массив лучше динамическим сделай.
карма: 26
1
Голосовали:Frank_Black
Ответов: 4281
CORPORATION-Z
Добытчик
#5: 2017-11-29 20:39:58 ЛС | профиль | цитата
Tank писал(а):
Только массив лучше динамическим сделай.

Я, конечно, не эксперт, но, раз у автора C++, а не C, то вообще лишний раз использовать массив char без веской причины - плохая практика, а вместо массива, думаю, автору подойдет string.
карма: 24
0
Ответов: 146
Silence
Безмолвие
#6: 2017-11-29 21:15:53 ЛС | профиль | цитата
paschok писал(а):
Tank писал(а):
Только массив лучше динамическим сделай.

Я, конечно, не эксперт, но, раз у автора C++, а не C, то вообще лишний раз использовать массив char без веской причины - плохая практика, а вместо массива, думаю, автору подойдет string.


В языке Си разве существует тип данных string? Строки как раз таки и существуют в виде массивов с типом char.
Frank_Black писал(а):
Tank, а как записать пробел?


Используй функцию gets(), которая находится в библиотеке string.h. Она записывает в массив все символы, включая пробел.
карма: 1
0
Ответов: 1501
Noir Villar
Гефест
#7: 2017-11-29 21:20:41 ЛС | профиль | цитата
Stefano писал(а):
В языке Си разве существует тип данных string? Строки как раз таки и существуют в виде массивов с типом char.

Массив с типом string есть.
карма: 111
0
Ответов: 1566
TRoN
Не платит за КМ
#8: 2017-11-29 23:36:44 ЛС | профиль | цитата
Ну да, string будет лучше конечно. Но, автор же сам написал что нужен чаровський массив.
И раз автор еще учит массивы, то до библиотек STL ему еще нужно мноого учить)
карма: 26
0
Разработчик
Ответов: 3017
NeverClan
[W] Inactive
#9: 2017-11-30 01:11:24 ЛС | профиль | цитата
Stefano писал(а):
В языке Си разве существует тип данных string?

В Си - нет, в C++ - да. Если нет крайней нужды, лучше всегда использовать string вместо char[]. И вообще вместо обычных массивов vector‹›.
карма: 125
1
Голосовали:paschok
Ответов: 383
VIKINGS
Designer
#10: 2017-11-30 01:56:00 ЛС | профиль | цитата
Tank писал(а):
Ну да, string будет лучше конечно. Но, автор же сам написал что нужен чаровський массив.
И раз автор еще учит массивы, то до библиотек STL ему еще нужно мноого учить)

Нас так клево учат.
Нам пропод сказал «вы в интернете можете за 10 минут научится тому, чему я буду учить вас всю пару»

Лучше уж тогда подскажите учебник (бесплатный) по с++
карма: 39
Честные не лгут, когда не нужно. | Design by Frank
0
Ответов: 4281
CORPORATION-Z
Добытчик
#11: 2017-11-30 06:21:12 ЛС | профиль | цитата
Frank_Black, бесплатных учебников нет. Но ищи этот:
Липпман Стенли Б., Лажойе Жози, Му Барбара Э. Язык программирования C++. Базовый курс, 5-е издание
      Как по мне - один из лучших учебников начального уровня(правда, если вы не учили другой язык, может, вам будет сложнее), позволяющий довольно подробно узнать некоторые детали языка. Местами, правда, слишком уж подробен. Ищи именно 5-е издание.
      Если хочешь больше примеров:
2006, Х. М. Дейтел, П. Дж. Дейтел. Как программировать на C++
Но учитывай, что некоторые приемы могут быть неактуальны и иметь более современные аналоги.
Лучше учебников для новичков я не встретил.
карма: 24
1
Голосовали:Frank_Black
Ответов: 1604
Crying Angels
Падший Ангел
#12: 2017-11-30 09:30:15 ЛС | профиль | цитата
Frank_Black, у нас препод, ведущий основы проги, дико рофлит с некоторых товарищей (изучаем тут Си понемногу), изредка его, правда, пробивает на годные рассказы и он нам чот показывает в ассемблере уже, что да как работает, что делает компилятор и т.д. В такие моменты можно поржать с тупого выражения лица одногруппников
карма: -14
0
12
Сообщение
...