Эй, я новичок в программировании на C++, и я получаю зависание, но я застрял в этой простой проблеме. Я полагаю, чтобы создать сдвиговый шифр, используя буквы A-Z
и переместив их на 3 места, я получаю все, кроме когда Я делаю свой вывод, я получаю дополнительные буквы, которые не нужны, как "|[|"
Я знаю, что мне нужно поставить терминатор, и я сделал, но, похоже, не работает. Вот мой черновик моей программы.Почему эта программа на C++ печатает нерелевантные символы?
#include<iostream>
#include<iomanip>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
//char
char caesar[]="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG";
char cipher[255];
char lookup[26];
int key=3,i,index;
for(i=0;i<26;i++)
{
lookup[i]= static_cast<char>(65+i);
}
for(i=0;i<43;i++)
{
if (caesar[i]>='A' && caesar[i]<='Z')
{
index= static_cast<int>(caesar[i])-65;
cipher[i]=lookup[(index+key)%26];
}
else
cipher[i]=caesar[i];
}
//Null Terminator
cipher[i]!='\0'
cout<<cipher<<endl;
return 0;
}
Это ваш фактический код? Он не компилируется в его текущей форме (хотя это просто отсутствует ';', который предотвращает компиляцию). Однако строка, в которой отсутствует символ ';', также будет проблемой, если это ваш код. – eldarerathis
вам не нужно использовать 'static_cast' для преобразования из' char' в 'int'. –
Нет, это было что-то, что я только что придумал – Eric