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

标签 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;
}

最佳答案

您正在使用 != 代替 = 并且还缺少一个 ;

cipher[i]!='\0'

应该是:

cipher[i]='\0';

关于c++ - 为什么这个 C++ 程序会打印不相关的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732423/

相关文章:

c++ - 在 DirectX11 游戏上叠加

.net - 在字符串之间添加空格

带有 NUL 的 SQLite 字符串

c - 从串行端口 Linux C 读取 NULL 字符

c# - 什么会导致 XML 文件被空字符填充?

c++ - 在 C++ 中返回一个字符串作为私有(private)继承类

c++ - Qt - 使用预处理器指令检查 Windows 上链接的 .lib 的可用性

c++ - 如何从原始指针获取 shared_ptr?

string - Go:如何检查一个字符串是否包含多个子字符串?

java - 如何优化此算法,该算法着重于寻找最短的平衡子串?