Member 13795308 Ответов: 2

Преобразование алгоритма в C++


Программа должна быть написана так, чтобы ввести сообщение в строку и затем зашифровать его.

output "Enter message"
Input MyMessage
EncryptString= ""

For i- 1 to CHARACTERCOUNT (mymessage)
NextNum - ASC(ONECHAR(MYMessage,i) + 3)
EncryptString - EncryptString & CHR(NextNum)
Endfor
Output encryptstring

ONECHAR("Barcelona", 3) returns 'r'
CHARACTERCOUNT ("South Africa") returns 12


Что я уже пробовал:

Пожалуйста, помогите мне написать этот алгоритм на C++
Mystring=Input ('key in string')

Stringtotal=0

for i in range (0,len(Mystring)):

NextNum = ord( Mystring[i])

StringTotal= StringTotal + NextNum

Print(MyString, stringTotal)


Попробовав это в python, помогите мне преобразовать его в C++

Jochen Arndt

Вы знаете Basic и C/C++?
Если это так, то нет проблем сделать это самостоятельно.

Если нет, то какова ваша задача?
Преобразуйте этот конкретный базовый код, но вы не знаете Basic?

Или у вас есть какое-то домашнее задание на C++, вы нашли этот базовый код и подумали, что он делает то, что задание хочет, чтобы вы сделали?

Во всяком случае, это шифр подстановки букв ROT3 без обработки опрокидывания. Это означает, что код каждого символа увеличивается на 3.

Member 13795308

Недавно начал работать с++ , прошел через basic. Задание состояло в том, чтобы преобразовать его в код python, что я и сделал, но я хочу поэкспериментировать с ним на c++. Я довольно новичок в этом, поэтому я мог только делать ввод и вывод, но застрял в цикле, не имея ни малейшего представления, как его написать

2 Ответов

Рейтинг:
8
Рейтинг:
12

Jochen Arndt

Цитата:
Недавно начал работать с++ , прошел через basic. Задание состояло в том, чтобы преобразовать его в код python, что я и сделал, но я хочу поэкспериментировать с ним на c++. Я довольно новичок в этом, поэтому я мог только делать ввод и вывод, но застрял в цикле, не имея ни малейшего представления, как его написать

Даже ваш код Python отсутствует +3 часть.

Но в C/C++ все гораздо проще. Если у вас есть строка C (char массива) или std::string вы можете получить доступ к массиву по индексу / [] оператор:
input[i] += 3;
Обратите внимание, что приведенный выше фрагмент кода предполагает, что выходные данные были инициализированы копией входной строки.

В качестве альтернативы используйте Range-based for loop (начиная с C++11) - cppreference.com[^] :
// input is of type std::string
std::string output;
for (auto c : input)
    output += c + 3;