Почему эта программа на C ++ печатает нерелевантные символы? - PullRequest
1 голос
/ 17 сентября 2010

Эй, я новичок в программировании на C ++, и я освоил его, но я застрял на этой одной простой проблеме, я должен создать шифр сдвига, используя буквы A-Z и сдвигая их на 3 места, я получаю все, но когда я делаю вывод, я получаю дополнительные буквы, которые не нужны, как "|[|" я знаю, что должен поставить терминатор, и я сделал, но, похоже, не работает. Вот мой черновик моей программы.

#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;
}

1 Ответ

8 голосов
/ 17 сентября 2010

Вы используете ! = вместо = , а также отсутствует ;

cipher[i]!='\0'

должно быть:

cipher[i]='\0';
...