2010-09-17 94 views
1

嘿,我是新来的编程在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; 
} 
+0

这是您的实际代码?它不会以其当前的形式进行编译(尽管它只是一个缺少编译的';')。但是,如果这是你的代码,缺少';'的行看起来也是问题。 – eldarerathis 2010-09-17 03:16:21

+0

您不需要使用'static_cast'从'char'转换为'int'。 – 2010-09-17 03:19:07

+0

不,这是我刚刚想出的 – Eric 2010-09-21 03:03:21

回答

8

您正在使用=代替=,也存在丢失的!;

cipher[i]!='\0' 

应该是:

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

谢谢我把它上班, – Eric 2010-09-21 03:02:50

+0

@Eric:很高兴知道。您可以将答案标记为已接受。 – codaddict 2010-09-21 03:10:41

相关问题