为什么这个C++程序打印不相关的字符?

1 c++ string null-character

嘿,我是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;
}
Run Code Online (Sandbox Code Playgroud)

cod*_*ict 8

你正在使用!=代替=而且还有一个缺失;

cipher[i]!='\0'
Run Code Online (Sandbox Code Playgroud)

应该:

cipher[i]='\0';
Run Code Online (Sandbox Code Playgroud)